Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5120085
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2008-01-01 23:14:24

    最近因项目需求,要实现将excel文件通过php页面导入mysql数据库中。在网上搜了很多这方面的资料,发现都是将excel文件另存为csv文件,然后从csv文件导入。这里介绍一个直接将excel文件导入mysql的例子。我花了一晚上的时间测试,无论导入简繁体都不会出现乱码,非常好用。
   

       PHP-ExcelReader,下载地址:

 

 说明:

测试环境:MYSQL数据库采用utf8编码.导入EXCEL文档是xls格式,经过测试,xlsx 格式[excel 2007]也OK.

文中红色标注为需要注意的地方,请替换成你配置好的数据,如数据库配置等。运行http://localost/test.php实现导入。

以下是我贴出的详细代码,其中test.php为我写的测试文件,read.php和oleread.inc文件是从上面提供的网址中下载的。


1. test.php

  

 

<?php

require_once 'reader.php';

 

// ExcelFile($filename, $encoding);


$data = new Spreadsheet_Excel_Reader();

 

// Set output Encoding.


$data->setOutputEncoding('gbk');

 

//”data.xls”是指要导入到mysql中的excel文件


$data->read('data.xls');

 

@ $db = mysql_connect('localhost', 'root', '123456') or

       die("Could not connect to database.");//连接数据库


mysql_query("set names 'gbk'");//输出中文


mysql_select_db('mydb'); //选择数据库


error_reporting(E_ALL ^ E_NOTICE);

 

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {

//以下注释的for循环打印excel表数据


/*

 for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {

            echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";

           }

           echo "\n";

*/


//以下代码是将excel表数据【3个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!


    $sql = "INSERT INTO test VALUES('".

               $data->sheets[0]['cells'][$i][1]."','".

                 $data->sheets[0]['cells'][$i][2]."','".

                 $data->sheets[0]['cells'][$i][3]."')";

    echo $sql.'
'
;

       $res = mysql_query($sql);

}

 

?>

 

2.reader.php

 

阅读(3975) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-12-05 18:26:07

为什么提示The filename ./XXX/XXX/XXX.xls is not readable

chinaunix网友2008-11-07 17:53:14

楼主,从你那个下来的东西里面缺少文件啊,是不能执行 的

chinaunix网友2008-09-10 13:24:07

楼主你的测环境是什么?能说说吗?

chinaunix网友2008-09-10 13:21:31

可是我用phpexcelreader导入excel到mysql中文成乱码,该如何解决呢? 我的PHP是4.3的MYSQL4.020的,有谁知道该如何解决?

chinaunix网友2008-03-10 09:23:49

哈哈 ,无意中看到了我写的文章,不容易啊!