PHP导入导出Excel文件的方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-09 20:32:48 浏览: 评论:0
下面我来给大家介绍在php中操作excel两个实例,一个是利用PHP-ExcelReader导入excel并输出,另一种是直接输入excel并导出,下面看实例。
借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下:
PHP-ExcelReader下载地址:http://sourceforge.net/projects/phpexcelreader/
- <?php
- require_once 'Excel/reader.php';
- $data = new Spreadsheet_Excel_Reader();
- $data->setOutputEncoding('gbk');
- $data->read('test.xls');
- for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
- for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
- echo """.$data->sheets[0]['cells'][$i][$j]."",";
- }
- echo "n";
- }
- ?>
例.phpexcel导到excel,1.test.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";
- //PHP开源代码
- */
- //以下代码是将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);
- }
- ?>
例.导出excel文件
比如我需要一个做php导出 excel的的程序,只需要把相关的数据导出到excel表就可以了,这么简单的操作就不需要用那些类库什么的了,直接用header的方式就可以了:header("Content-type:application/vnd.ms-excel");
看看如下代码如下:
- <?php
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=Export_test.xls");
- $tab="t"; $br="n";
- $head="编号".$tab."备注".$br;
- //输出内容如下:
- echo $head.$br;
- echo "test321318312".$tab;
- echo "string1";
- echo $br;
- echo "330181199006061234".$tab; //直接输出会被Excel识别为数字类型
- echo "number";
- echo $br;
- echo "="330181199006061234"".$tab; //原样输出需要处理
- echo "string2";
- echo $br;
- ?>
在导出后会发现一个问题,如果数据是数字会出现一些意想不到的情况,比如,"012345",在excel中会变成"12345";如果输入身份证号码这样的长数字,在excel中会用科学计数法表示出来,并且最后的四位数字会出现偏差,变位0000等情况,这就需要把单元格设置为文本格式,方法是
echo "="330181199006061234""如果程序是utf-8编码的,还需要用iconv函数去转码,不然是会乱码的,乱码的。
另word格式导入类似,指定header就可以了,代码如下:
- header("Content-Type: application/msword");
- header("Content-Disposition:attachment;filename=doc.doc");
Tags: 导入 导出 Excel
- 上一篇:PHP Curl多线程实现原理与实例详解
- 下一篇:微信公众平台自定义菜单开发示例
相关文章
- ·php中数据的批量导入(csv文件)(2013-12-09)
- ·PHP通过PHPExcel类导入导出excel(2014-06-25)
- ·PHP实现数据导入、CSV文件下载的例子(2014-06-25)
- ·PHP导入和导出CSV文件实现程序(2014-07-25)
- ·PHPEXCEL导入excel表格生成数组(2014-08-26)
- ·php利用PHPExcel类导出导入Excel用法(2014-08-28)
- ·把FCKeditor导入PHP+SMARTY的方法(2014-09-05)
- ·php导入excel文件入mysql数据库例子(2014-09-10)
- ·phpmyadmin数据库导入导出问题(2014-09-10)
- ·PHP读取CSV大文件导入数据库的示例(2014-09-10)
- ·PHP把excel(xls)文件导入mysql数据库(2014-09-10)
- ·PHP把MSSQL数据导入到MYSQL实例(2014-09-10)
- ·php导入大量数据到mysql性能优化(2014-09-10)
- ·php中数据的批量导入csv文件代码(2014-09-10)
- ·PHP把导入和导出CSV文件到mysql数据库方法(2014-09-10)
- ·Drupal读取Excel并导入到mysql数据库程序代码(2014-09-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)