php实现将excel文件的数据批量导入到数据库

简单思路如下:
1、将excel文件另存为txt文件。
2、用fopen()读取文件内容。
3、分析文件内容的结构,构成sql语句。
4、执行sql语句。

假设有一个test.xls的excel文件存储着我们要导入的内容。内容如下:


然后打开test.txt文件,将它的编码另存为utf-8或者是gb2312,最主要是要跟下面的编码统一,以防出现乱码。

<?php 
include("conn.php");
$file=@fopen("test.txt",'r') or die("打开文件失败"); // 以只读方式打开test.txt文件。
//我们打开test.txt文件,可以看到test.txt文件内容的每一行与test.xls文件的每一行相对应。
//也就是说除了第一行外,每一行就相当于表的一条记录,我们只要循环插入每一行数据到表中就行了。
fgets($file);  //先读取文件的第一行,因为第一行不是我们要的内容。
//下面循环读取每一行,第一行已经读取了,所以从第二行开始读取。
while(!feof($file)){
       $val=fgets($file); 
       //下面一步很关键,用explode()将每一行转换为数组来存储每个字段的值。 
     //比如说第二行的内容是:1    伍新亭    男    电子商务;
       //转换为数组就变成array(1,"伍新亭","男","电子商务");这对于我们插入数据库就很有帮助了。
     $values=explode("\t",trim($val));  //注意用来分割的是制表符"\t",而不是空格" " ,自己也可以输出来测试一下。
     $sql="insert into `test`(`id`,`name`,`sex`,`major`) values('$values[0]','$values[1]','$values[2]','$values[3]')";
       if(!empty($values[0])) mysql_query($sql); //因为最后一行可能是空数据,所以做了个判断。   
}
fclose($file);
?>


文章来自: 本站原创
引用通告地址: http://www.eobo.cn/seoblog/trackback.asp?tbID=45
Tags:
评论: 1 | 引用: 0 | 查看次数: 13611
发表评论
你没有权限发表留言!