安装命令:composer require phpoffice/phpexcel
在使用时,需要引入classes目录下的PHPExcel.php的PHPExcel类以及classes\PHPExcel\IOFactory.php的PHPExcel_IOFactory类。
具体项目实例在项目经验中查看。
使用步骤:
//如果使用thinkphp5.1框架,则直接use即可
use PHPExcel_IOFactory;
use PHPExcel;
//实例化phpexcel对象
$objPHPExcel = new \PHPExcel();
//设置Excel属性
$objPHPExcel->getProperties()
->setCreator("Maarten Balliauw") //创建人
->setLastModifiedBy("Maarten Balliauw") //最后修改人
->setTitle("Office 2007 XLSX Test Document") //设置标题
->setSubject("Office 2007 XLSX Test Document") //设置主题
->setDescription("Test document ") //设置备注
->setKeywords( "office 2007 openxml php") //设置关键字
->setCategory( "Test result file"); //设置类别
// 给表格添加数据
$objPHPExcel->setActiveSheetIndex(0) //设置第一个内置表(一个xls文件里可以有多个表)为活动的
->setCellValue( 'A1', 'Hello' ) //给表的单元格设置数据
->setCellValue( 'B2', 'world!' ) //数据格式可以为字符串
->setCellValue( 'C1', 12) //数字型
->setCellValue( 'D2', 12) //
->setCellValue( 'D3', **true** ) //布尔型
->setCellValue( 'D4', '=SUM(C1:D2)' );//公式
//激活当前表
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();//清除缓冲区,避免乱码
//最后只需要生成Excel或者提示下载即可
//生成Excel,并自定义保存路径
//"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save($path);
//弹出提示下载文件
header('pragma:public');
header("Content-Disposition:attachment;filename=$expFileName");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel\_IOFactory:: *createWriter*($objPHPExcel, 'Excel2007');
$objWriter->save( 'php://output');
PHP EXCEL如何获取行数
PHPExcel_IOFactory::createReader('Excel2007')->load('Excel文件名或路径')->getSheet(0)->getHighestRow();//2007以上版本Exel
PHPExcel_IOFactory::createReader('Excel5')->load('Excel文件名或路径')->getSheet(0)->getHighestRow();//2007以下版本Exel
读取excel文件
try {
$inputFileType = \PHPExcel_IOFactory::identify($path);
$objReader = \PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($path);
} catch(\Exception $e) {
die('加载文件发生错误:"'.pathinfo($path,PATHINFO_BASENAME).'": '.$e->getMessage());
}
读取已有表格后插入新数据
$objdatarows 可以定义为读取前面表格的所有行数,+ 1以后就是新行数。
$row=$objdatarows+1;
$objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1);
//在操作行的号前加一空行,这空行的行号就变成了当前的行号
//对应的列都附上数据和编号
$objPHPExcel->getActiveSheet()->setCellValue( 'A'.$row,"第1列内容");
$objPHPExcel->getActiveSheet()->setCellValue( 'B'.$row,"第2列内容");
$objPHPExcel->getActiveSheet()->setCellValue( 'C'.$row,"第3列内容");
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册
社交帐号登录