我们在引入phpcxcel类库中进行导出数据的excel文件,结果出现打开的文件和扩展名不一致,或者打开的文件和文件扩展名无效,这时候我们该如何处理呢?
如下是导出的函数(自定义):
public function exportExcel($expTitle,$expCellName,$expTableData,$fileName=""){
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
$fileName = $fileName.'_'.time().date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
$cellNum = count($expCellName);
$dataNum = count($expTableData);
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getProperties()->setCreator("ctos")
->setLastModifiedBy("ctos")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.' Export time:'.date('Y-m-d H:i:s'));
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
}
}
ob_end_clean();//清除缓冲区,避免乱码
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$fileName.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
通过如上的代码我们发现ob_end_clean();//清除缓冲区,避免乱码,需要我们导出函数中添加此函数,还有头部处理,可以使用excel5或者excel2007,导出的数据都没有问题。
相关推荐
phpexcel导出工作薄
thinkphp结合phpexcel导出pdf格式的数据,必须添加mpdf插件,phpexcel导出pdf格式的数据,必须添加mpdf插件
ThinkPHP实现数据导出为Excel文件的PHPExcel类库文件
见到导出大量数据 自己定义Excel表格样式 用html当时定义见到导出大量数据 自己定义Excel表格样式 用html当时定义见到导出大量数据 自己定义Excel表格样式 用html当时定义见到导出大量数据 自己定义Excel表格样式 用...
我们经常会使用phpExcel导入或导入xls文件,但是如果一次导出数据比较大就会出现内存溢出错误,下面我来总结解决办法
phpexcel的导入导出,导入支持03 和 07 导入。导出有标准导出,html格式导出
thinkphp3.2.3整合phpexcel实现导出的功能,对phpexcel进行修改可以使用vendor导出
php通过引用phpexcel扩展,导出多个工作表格,自定义每个工作表的头部标题
PHPExcel数据库表导出PHPExcel数据库表导出
phpExcel 导出方法,可支持大数据导出,最大数据为各个系统文件最大容量,我在项目中常用到的
php5.4环境下的 PHPExcel-1.8 使用,只要 Classes下的文件,并改名为 phpexcel 1,建立mysql数据库,把excel_demo.sql导入到你的数据库,采取utf-8编码; 2,导入时候请按照xls/demo.xls的格式导入,在linux系统下 ...
PHP开发中遇到的数据导入功能,发现此插件比较好用,实现代码见本人博客。PHPExcel Excel1.8导入导出。
引用phpexcel 导出带有背景颜色的excel,自定义背景颜色
Thinkphp5和PHPexcel的结合,成就了导入导出的功能需求。
php导出excel文档,相关代码组建,已经测试通过了。可共学习使用。
PHP 使用 PHPExcel 导出表格数据
使用PHPExcel导出Excel文件某些数据丢失做基于微信公众号的Web开发的时候,系统中可能会将用户的微信昵称存储下来,并且可能需要在导出的Excel文件中
php phpexcel 导出excel表格源码 亲测可用用的是phpexcel类
PHPExcel导入导出插件,含有示例,用户可以根据示例自己编写导出到处代码,简单的导出可直接用现成的方法
摘自实际项目中关于带有图片的excel表格的导入、导出功能。官方不要再提高下载积分了,不要再提高了!