php实现将excel文件的数据批量导入到数据库
作者:admin 日期:2010-04-28
简单思路如下:
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);
?>
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);
?>
评论: 1 | 引用: 0 | 查看次数: 13981
发表评论
你没有权限发表留言!