php导出excel
这里有三种php导出excel的方法,如下:
方法一:使用制表符、换行符模拟Excel导出
$filename=”ExportExcel.xls”;//定义一个excel文件
header(“Content-Type: application/vnd.ms-execl”);
header(“Content-Type: application/vnd.ms-excel;charset=UTF-8″);
header(“Content-Disposition: attachment; filename=$filename”);
header(“Pragma: no-cache”);
header(“Expires: 0″);
//设置excel输出表头,当然这不是必须的
echo iconv(“UTF-8″, “gb2312″, “ID”).”\t”;
echo iconv(“UTF-8″, “gb2312″, “Col1″).”\t”;
echo iconv(“UTF-8″, “gb2312″, “Col2″).”\t”;
echo iconv(“UTF-8″, “gb2312″, “Col3″).”\t”;
echo iconv(“UTF-8″, “gb2312″, “Col4″).”\n”;//注意这个要换行
//连接数据库
mysql_query(“SET NAMES utf8″);
$result=”SELECT * FROM”);
while($row =mysql_fetch_array($result)){
echo iconv(“UTF-8″, “gb2312″, $row[0]).”\t”;
echo iconv(“UTF-8″, “gb2312″, $row[1]).”\t”;
echo iconv(“UTF-8″, “gb2312″, $row[2]).”\t”;
echo iconv(“UTF-8″, “gb2312″, $row[3]).”\t”;
echo iconv(“UTF-8″, “gb2312″, $row[4]).”\n”;
}
这个方法最简单,但是导出的文件并不是真正的Excel,无法设置格式,而且在Mac版的MS Office上无效。
这个方法还有一个bug,如果导出的数据中某个字段内容比较多,数据量多余30条的话,导出的数据会丢失甚至无法导出,所以用这种方法的话要慎重。
方法二:使用php-excel类导出excel
简单小巧的Excel类库,可自行修改相关代码设置单元格格式,导出的实际上市XML格式的电子表格。
// load library
require ‘php-excel.class.php’;
// create a simple 2-dimensional array
$data = array(
1 => array (‘Name’, ‘Surname’),
array(‘Schwarz’, ‘Oliver’),
array(‘Test’, ‘Peter’)
);
// generate file (constructor parameters are optional)
$xls = new Excel_XML(‘UTF-8′, false, ‘My Test Sheet’);
$xls->addArray($data);
$xls->generateXML(‘my-test’);
方法三:使用PHPExcel类导出excel
功能强大、全面,支持office2003、office2007与之相应的是过于臃肿,比较复杂。