使用PHPExcel导入导出excel格式文件
作者:zccst
由于导出使用较多,下面是导出实现过程。
第一步,将PHPExcel的源代码复制到项目的lib下
文件包括:PHPExcel.php 和 文件夹PHPExcel
源代码见附件
注1:源代码是zip格式,能在windows和linux通用。
注2:PHPExcel.zip是干净代码,可以直接引用。PHPExcel2.zip有svn记录,不适合直接引用。
第二步:在需要导出的handler页面中引用
1,在头部引入三个文件
//设置环境变量(新增PHPExcel)
set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . get_include_path());
//注:在yii中,也可以直接Yii::import(“application.lib.PHPExcel.*”);
//引入PHPExcel相关文件
require_once "PHPExcel.php";
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel5.php';
2,将数据放入excel表格中
//新建
$resultPHPExcel = new PHPExcel();
//设置参数
//设值
$resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');
$resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
$resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');
$i = 2;
foreach($data as $item){
$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
$i ++;
}
3,设置导出的一些参数
版本一:
//设置导出文件名
$outputFileName = 'total.xls';
$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
//ob_start(); ob_flush();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$xlsWriter->save( "php://output" );
版本二:
$writer = PHPExcel_IOFactory::createWriter($resultPHPExcel, 'Excel5');
$writer->setTempDir(Yii::app()->basePath.'/runtime');
$filename = "单.xls";
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
$writer->save('php://output');
4,增加附件(非必需)
$objPHPExcel = new PHPExcel();
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
foreach($data2 as $item){
$fp = dirname(__FILE__) . "/../../../" . $item['file_path'] ;
$objPHPExcel = $objReader->load($fp);
$objWorksheet = $objPHPExcel->getActiveSheet();
$resultPHPExcel->addExternalSheet($objWorksheet);
}
高级主题
1,excel5与excel2007区别
zipArchive.php
有很多php(php.ini)不支持excel2007,所以建议使用excel5。
2,设置临时文件位置
如果报临时文件名错,则更改临时文件路径
xlsWriter.setDirName(Yii::app()->basePath.'/runtime');
3,设置excel单元格的格式
过滤
4,输出有错。
默认$xlsWriter->save( "php://output" );可能因为缓存不够大,而显示不完整,所以做个中转,方式如下:
$finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';
$xlsWriter->save($finalFileName);
echo file_get_contents($finalFileName); //file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。
其他设置可参考:
http://www.zeali.net/entry/556
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
相关推荐
在PHP开发中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`phpExcel`是一个广泛使用的PHP库,它允许开发者创建、读取和修改Microsoft Excel文件,即使这些文件包含图像。本篇文章将深入...
在您的项目中,您提到的重点是“phpexcel导入导出,html格式导出”,这涉及到如何使用PHPExcel处理不同类型的文件格式以及如何生成HTML格式的导出。 1. PHPExcel导入导出: PHPExcel库提供了一个方便的API,用于...
6. **错误处理**:在处理过程中,务必添加异常处理,捕获可能出现的错误,如文件上传失败、文件格式不正确、读取数据错误等,提供友好的错误提示。 7. **性能优化**:由于PHPExcel处理大量数据时可能会消耗大量内存...
php5.4环境下的 PHPExcel-1.8 使用,只要 Classes下的文件,并改名为 phpexcel 1,建立mysql数据库,把excel_demo.sql导入到你的数据库,采取utf-8编码; 2,导入时候请按照xls/demo.xls的格式导入,在linux系统下 ...
使用PHPExcel导入Excel数据时,首先需要创建一个`PHPExcel_IOFactory`的实例,通过`load()`方法加载Excel文件。然后,你可以遍历工作表中的每一行和每一列,获取单元格的数据。例如: ```php $objPHPExcel = ...
总之,PHPExcel 1.8是PHP开发中处理Excel文件的强大工具,提供了丰富的API用于导入导出Excel数据。通过理解和掌握这些API,开发者能够高效地实现数据的交互,提高工作效率。在实践中,不断探索和优化,才能更好地...
综上所述,"phpexcel导入导出(轻量) 淘宝导入"是一个关于如何使用PHPExcel库处理淘宝平台数据的示例。开发者可以通过学习和实践这个案例,提升他们在数据导入导出以及与电商平台集成方面的技能。
在ThinkPHP5.0.10框架下使用PHPExcel实现带图片excel表格的导入导出功能。application\index\model\ExcelDown.php文件中,第93行加上判断if($res[$i][$data['field'][$j]]!='')改为if($res[$i][$data['field'][$j]]!...
除了支持常见的XLSX和CSV格式,LaravelExcel还支持其他Excel文件格式,如XLS、ODS等,以及自定义CSV编码。 总结来说,LaravelExcel是Laravel开发中处理Excel和CSV文件的强大工具,通过其丰富的功能和灵活的配置,...
标题 "PHPExcel导入excel" 涉及到的是在PHP中使用PHPExcel库来处理Excel文件,尤其是导入数据到程序中的过程。PHPExcel是一个强大的PHP类库,它允许开发者读取、写入和操作多种电子表格文件格式,包括Microsoft ...
总结一下,通过ThinkPHP 3.2和PHPExcel的结合,我们可以实现高效的数据导入导出功能。理解并掌握这两个工具的使用,对于处理大量数据的Web应用来说,是非常有价值的。在实际操作中,不断实践和优化,可以让你的代码...
**MySQL导入导出Excel** 1. **导出MySQL到Excel**:先通过SQL查询获取数据库中的数据,然后用PHP将数据写入Excel文件,过程类似于上述的导出步骤。 2. **导入Excel到MySQL**:上传Excel文件,读取数据,然后批量...
分享一个利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel的类。根据时间生成采购报表,实例化excel类,设置选定sheet表名,合并单元格 给单元格赋值(数值,字符串,公式),大边框样式 边框加粗,设置...
PHPExcel支持多种文件格式,包括旧版的.BIFF(Excel 97-2003)和较新的.xlsx(基于Open XML标准)。在PHP 7.4版本中,这个库可能已经更新,以支持新版本的语法优化和性能提升,确保了与最新PHP版本的兼容性。 导入...