PHP 使用 PHPExcel 库生成 Excel 文件
PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等
调用代码示例:
- $php_excel = new PHPExcel();
- $properties = $php_excel->getProperties();
- $properties->setCreator("www.1024i.com");
- $properties->setLastModifiedBy("www.loubarnes.com");
- $properties->setTitle("PHP 生成 Excel");
- $properties->setSubject("PHP 生成 Excel");
- $properties->setDescription('PHP 生成 Excel');
- $properties->setKeywords("PHP 生成 Excel");
- $properties->setCategory("PHP 生成 Excel");
- $php_excel->setActiveSheetIndex(0);
- $active_sheet = $php_excel->getActiveSheet();
- $active_sheet->setTitle('用户');
- // 自动调节大小
- $active_sheet->getColumnDimension('A')->setWidth(8);
- $active_sheet->getColumnDimension('B')->setWidth(12);
- $active_sheet->getColumnDimension('C')->setWidth(8);
- $active_sheet->getColumnDimension('D')->setWidth(8);
- $active_sheet->getColumnDimension('E')->setWidth(24);
- $active_sheet->getColumnDimension('F')->setWidth(60);
- $active_sheet->setCellValue('A1', 'PHP 生成 Excel 示例' );
- $active_sheet->mergeCells('A1:F1'); // 合并表头单元格
- $active_sheet->getRowDimension(1)->setRowHeight(30); // 设置表头1高度
- $style = array(
- 'font' => array(
- 'size' => 20
- ),
- 'alignment' => array(
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
- ),
- 'borders' => array(
- 'bottom' => array(
- 'style' => PHPExcel_Style_Border::BORDER_THIN
- )
- )
- );
- $active_sheet->getStyle('A1:F1')->applyFromArray($style); // 设置表头1样式
- $active_sheet->getRowDimension(2)->setRowHeight(30); // 设置表头2高度
- // 设置表头2名称
- $active_sheet->setCellValue('A2', '编号');
- $active_sheet->setCellValue('B2', '名称');
- $active_sheet->setCellValue('C2', '性别');
- $active_sheet->setCellValue('D2', '年龄');
- $active_sheet->setCellValue('E2', '出生日期');
- $active_sheet->setCellValue('F2', '备注');
- // 表头(编号, 名称, 性别, 出生日期)样式
- $style = array(
- 'font' => array(
- 'bold' => true
- ),
- 'alignment' => array(
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
- ),
- 'borders' => array(
- 'bottom' => array(
- 'style' => PHPExcel_Style_Border::BORDER_THIN
- )
- )
- );
- $active_sheet->getStyle('A2:E2')->applyFromArray($style);
- // 表头(备注)样式
- $style = array(
- 'font' => array(
- 'bold' => true
- ),
- 'borders' => array(
- 'bottom' => array(
- 'style' => PHPExcel_Style_Border::BORDER_THIN
- )
- )
- );
- $active_sheet->getStyle('F2')->applyFromArray($style);
- // 内容样式
- $style = array(
- 'alignment' => array(
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
- )
- );
- $active_sheet->getStyle('A:E')->applyFromArray($style);
- $ids = post::_ints('id', array());
- $notes = post::_strings('note', array());
- $i = 3;
- if(count($ids))
- {
- foreach($ids as $id)
- {
- $note = $notes[$i-3];
- foreach($this->data as $data)
- {
- if($data['id']==$id)
- {
- $active_sheet->setCellValue('A'.$i, $id );
- $active_sheet->setCellValue('B'.$i, $data['name'] );
- $active_sheet->setCellValue('C'.$i, $data['male'] );
- $active_sheet->setCellValue('D'.$i, $data['age'] );
- $active_sheet->setCellValue('E'.$i, $data['birth_date'] );
- $active_sheet->setCellValue('F'.$i, $note );
- break;
- }
- }
- $i++;
- }
- }
- header('Content-Type: application/vnd.ms-excel');
- header('Content-Disposition: attachment; filename="用户.xls"');
- $writer = PHPExcel_IOFactory::createWriter($php_excel, 'Excel5');
- $writer->save('php://output');
官方示例文档中有输出为 PDF 的示例程序:
- // Change these values to select the Rendering library that you wish to use
- // and its directory location on your server
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
- $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
- //$rendererLibrary = 'tcPDF5.9';
- $rendererLibrary = 'mPDF5.4';
- //$rendererLibrary = 'domPDF0.6.0beta3';
- $rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary;
- // ..........
- if (!PHPExcel_Settings::setPdfRenderer(
- $rendererName,
- $rendererLibraryPath
- )) {
- die(
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
- '<br />' .
- 'at the top of this script as appropriate for your directory structure'
- );
- }
- // Redirect output to a client’s web browser (PDF)
- header('Content-Type: application/pdf');
- header('Content-Disposition: attachment;filename="01simple.pdf"');
- header('Cache-Control: max-age=0');
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
- $objWriter->save('php://output');
使用这段代码时需要引入PHP 版本的 PDF 库,支持三个版本的:
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
- $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
即 TCPDF, MPDF,DOMPDF,官方网址分别是:
http://www.tcpdf.org/
http://www.mpdf1.com/mpdf/
https://github.com/dompdf/dompdf
推荐使用TCPDF,下载后复制到项目中,然后代码中 $rendererLibraryPath 改为对应的路径,然后就可以正常输出 PDF 文档了。
对于网上很多用户反映的 PDF 中文乱码问题,解决方法如下:
- 所有程序及文档全部使用 UTF-8 编码
- 在 tcpdf_autoconfig.php 中设置中文字库。
PHP 使用 PHPExcel 库生成 Excel 文件的更多相关文章
- php用PHPExcel库生成Excel文档的例子
<?php require_once '../libs/PHPWord/PHPWord.php'; require_once '../libs/PHPWord/PHPWord/IOFactory ...
- thinkphp整合系列之phpexcel生成生成excel文件
在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...
- php生成excel文件的简单方法
生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...
- C# 使用 NPOI 库读写 Excel 文件
NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件.在处理Excel文件上,NPOI 可以同时兼容 xls 和 xlsx.官网提供了一份 Examples,给出 ...
- 如何生成excel文件作为图像识别结果
如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...
- XLSTransformer生成excel文件简单演示样例
项目结构图: 项目中所用到的jar,能够到http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...
- XLSTransformer生成excel文件
jxls的使用方法: 1)声明一个XLSTransformer对象,生成方式就是使用new操作符 XLSTransformer transformer = new XL ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- 使用phpexcel类读写excel文件
使用原生php读写excel文件的博文地址: 基于使用原生php读写excel文件的不靠谱,本文将简单介绍如何使用第三方类库phpexcel来读写excel文件. 首先,需要到githut下载phpe ...
随机推荐
- MySQL使用Navicat远程连接时报错1251
1.报错信息 client does not support authentication protocol requested by server:consider upgrading MySQL ...
- Altium Designer chapter8总结
元件库操作中需要注意如下: (1)原理图库:主要分三部分来完成(绘制元件的符号轮廓.放置元件引脚.设计规则检查). (2)多子件原理图库:操作与原理图库基本相同,就是新建part. (3)PCB封装库 ...
- 【minicap】基于图像识别的手机端UI自动化测试的截图方式更新
minicap属于STF框架的一个工具,可以高速截图.同步手机屏幕至浏览器等 为什么用minicap截图: 经过试验,截同一个屏幕的一张图,adb shell screencap速度为2.9秒,而 ...
- 剑指offer--day04
1.1题目:变态跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 1.2解题思路: 当n=1时,结果为1: 当n=2时,结果为2: ...
- LeetCode 算法 Part 1
目录 1. 两数之和 1. 题目 2.代码 4. 算法用时 5. 感想 2. 两数相加 1. 题目 2.代码 4. 算法用时 5. 感想 3. 无重复字符的最长子串 1. 题目 2.代码 4. 算法用 ...
- JAVA总结--多线程
一.概念 1.进程:一个具有一定独立功能的程序,关于某些数据集合,一次运行活动. 两点:1.有自己的空间存储数据:2.一个程序. 进程,是系统 进行 资源分配 和 调度 的基础单位.动态性 ...
- HDU2112 HDUToday
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- R语言基础篇——数据读写
1.键盘输入数据(适合小数据集) #创建一个指定模式但不含数据的变量 mydata<-data.frame(age=numeric(0),gender=character(0),weight=n ...
- 13、前端知识点--ajax原理以及实现过程
一.简略版的 Ajax简介 Ajax(Asyncchronous JavaScript and Xml),翻译过来就是说:异步的javaScript和xml, Ajax不是新的编程语言,而是一种使用现 ...
- JavaScript基础6——全选示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...