PHP读取EXCEL插入Mysql数据库中
2010年4月11日
没有评论
最近公司有个客户需要将几千条的excel表数据导入,给人家导一下吧,以前到也看过一些导入的例子,方法很多,有的转换成csv格式的,txt的,什么都有,但是好多出现乱码情况的,网上PHP读取EXCEL的例子也很多,找了一个很好的类—phpExcelReader ,测试了几次,很不错。 下载地址
下载下后, 更改下 Excel– reader.php 的第31行
require_once 'Spreadsheet/Excel/Reader/OLERead.php';
改为
require_once 'OLERead.ince';
它给的例子的excel我这运行不了, 可能是我装的office的事吧 ^_^。
自己写一个, 现在写一个读取表 插入数据库的实例:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <?php require_once 'Excel/reader.php'; //加载所需类 $data = new Spreadsheet_Excel_Reader(); // 实例化 $data->setOutputEncoding('gbk'); //设置编码 $data->read('新建 Microsoft Excel 工作表.xls'); //read函数读取所需EXCEL表,支持中文 $conn= mysql_connect('localhost', 'root', ' ') or die("Can not connect to database."); //连接数据库 mysql_query("set names 'gbk'");//设置编码输出 mysql_select_db('excel'); //选择数据库 for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) { $sql = "INSERT INTO test VALUES('". $data->sheets[0]['cells'][$i][1]."','". $data->sheets[0]['cells'][$i][2]."','". $data->sheets[0]['cells'][$i][3]."','". $data->sheets[0]['cells'][$i][4]."','". $data->sheets[0]['cells'][$i][5]."','". $data->sheets[0]['cells'][$i][6]."')"; echo $sql.'<br />'; //$insert = mysql_query($sql); 插入部分 注释掉,实际可以自己插入。 } ?>
注意事项
我这的 for $i=2 是从表的第二行开始(一般第一行都得是字段说明,就不插入数据库了。)
注意sheet段
numRows 为你表的行数
cells 表的列数,示例中 插入的是6列的excel表
如果excel是上传的,先上传然后在读取路径 表名,插入数据库。
Recent Comments