为了减少录入信息的工作 需多程序都会使用导入一个Excel文件 来解决此问题 简单记录下操作过程 方便自己以后查看 准备工作 测试环境 Apache2.2 5.3.28 mysql 5.5 win7 测试过程中文件 在根目录下 phpexcelreader官方下载 下载完毕 解压拷贝文件夹到 根目录下
为了减少录入信息的工作 需多程序都会使用导入一个Excel文件 来解决此问题 简单记录下操作过程 方便自己以后查看
准备工作
测试环境 Apache2.2 5.3.28 mysql 5.5 win7
测试过程中文件 在根目录下
phpexcelreader官方下载
下载完毕 解压拷贝文件夹到 根目录下
下载完毕后导入文件的过程中 需要注意2个地方 不难找到
这是由于php5.3开始后,废除了php中的”=&”符号,所以要想复制,直接用=引用即可。将reader.php文件中的 $this->_ole =& new OLERead(); 替换成 $this->_ole = new OLERead();
Undefined variable: formatstr in xxx
在reader.php中第634行附近找到if ($formatstr),替换成 if (isset($formatstr))
下面是test.php的代码
<span style="font-size:14px;">header("Content-type:text/html;charset=gb2312"); require "/Excel/reader.php"; $xl_reader= new Spreadsheet_Excel_Reader(); $xl_reader->setOutputEncoding('gb2312'); $xl_reader->read("dbtest2.xls"); $xl_reader->sheets[0]['numRows']; $xl_reader->sheets[0]['numCols']; $xl_reader->sheets[0]['cells'][3][4]; $con=mysql_connect('localhost','root','') or die('连接出错'); mysql_select_db('tempgb2312'); mysql_query('set names gb2312'); $addtime=time(); $arr=array(); for($i=2;$isheets[0]['numRows'];$i++){ //数据条数$xl_reader->sheets[0]['numRows'] $sql="insert into user(user,name,iphone,email,addtime)value(". "'".$xl_reader->sheets[0]['cells'][$i][1]."'".",". "'".$xl_reader->sheets[0]['cells'][$i][2]."'".",". "'".$xl_reader->sheets[0]['cells'][$i][3]."'".",". "'".$xl_reader->sheets[0]['cells'][$i][4]."'".",". $addtime.")"; $arr[$i]=$sql; //可以替换成插入方法 } var_dump($arr);</span>
数据库为tempgb2312 编码是gb2312
表为
注意编码的设置 还有Excel的文件格式 保存类型为 microsoft excel 97-2003
欢迎大家 一起交流学习