如何读取csv文件的内容

 我来答
强之翠
推荐于2016-01-14 · 超过68用户采纳过TA的回答
知道答主
回答量:128
采纳率:75%
帮助的人:60.7万
展开全部
第一种方式: 先入库后使用 我们假设现在有有一个CSV文件Contacts.CSV 文件的内容是联系人信息。首先我们需要在数据库中建一个对应的表TC_Contacts,然后利用下面的SQL代码将CSV文件导入到这个表里面: INSERT INTO TC_Contacts23 SELECT * FROM 4 OPENROWSET('MSDASQL', 5 'Driver={Microsoft Text Driver (*.txt; *.csv)}; 6 DEFAULTDIR=D:\Data;Extensions=CSV;', 7 'SELECT * FROM "Contacts.CSV"') 其中:1.TC_Contacts为目标表的名字。 对于目标表,要求对应的字段能够接收CSV文件中对象列的数据,这里特别需要注意的是字符串的长度,日期时间格式和整数浮点数的处理;由于CSV文件中实际上都是字符串,那么在导入的过程中就有可能出现不能转换的情况。例如:日期格式不符合数据库的要求,或者字符串不能转化为整数或者浮点数等。 对于目标表,字段数目和顺序可以和CSV文件中的不一样。其实在整个的SQL语句中只有OPENROWSET是用来处理CSV文件的。其它部分都是普通的T-SQL,在T-SQL中能做的事情在这里都可以做。例如:如果你的TC_Contacts比CSV多一个字段gid uniqueidentifier ,那么就可以把SQL语句修改为: 1 INSERT INTO TC_Contacts 2 SELECT newid(),* FROM 3 OPENROWSET('MSDASQL', 4 'Driver={Microsoft Text Driver (*.txt; *.csv)}; 5 DEFAULTDIR=D:\Data;Extensions=CSV;', 6 'SELECT * FROM "Contacts.CSV"') 这样就可以给每条记录增加一个id了。 2.SQL代码中的DefaultDir 也就是D:\Data 是指存在于SQL Server服务器上的位置,而不是在提交该代码的客户机上。这一点对于初次接触的人来说很关键。SQL Server如果在服务器上找不到文件会报告错误。但是这个错误的消息不是那么直接了当。 3.有的CSV文件中第一行不是列标题,而是和其它行一样是普通的数据行。这个时候就需要一个Schema.ini来定义CSV文件的格式。Schema.ini的格式我会专门写一篇来介绍一下。在Schema.ini文件中会指定CSV文件的一些特性,这样有助于Microsoft Text Driver来处理数据. 第二种:直接使用 通过OdbcConnection可以创建一个链接到csv文件的链接,链接字符串的格式是:"Driver={Microsoft Text Driver (*.txt;*.csv)};Dbq="+cvs文件的文件夹路径+" Extensions=asc,csv,tab,txt; Persist Security Info=False"; 创建连接之后就可以使用DataAdapter等存取csv文件了。 public DataSet getdatasetfromcsv(string filepath, string filename){string strconn = @"driver={microsoft text driver (*.txt; *.csv)};dbq="; strconn += filepath; //filepath, for example: c:\ strconn += ";extensions=asc,csv,tab,txt;" ; OdbcConnection objconn = new OdbcConnection(strconn); DataSet dscsv = new DataSet();try{string strsql = "select * from " + filename; //filename, for example: 1.csv OdbcDataAdapter odbccsvdataadapter = new OdbcDataAdapter(strsql,objconn);
匿名用户
推荐于2016-12-04
展开全部
一次性读取csv文件内所有行的数据,参考方法如下:
<?php
$file = fopen('windows_2011_s.csv','r');
while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容
//print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可
$goods_list[] = $data;
}
//print_r($goods_list);

/* foreach ($goods_list as $arr){
if ($arr[0]!=""){
echo $arr[0]."<br>";
}
} */
echo $goods_list[2][0];

fclose($file);
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式