phpspreadsheet文件下载
2018-04-08 17:24
337 查看
坑
安装
简单示例
通过模板来生成文件
释放内存
单元格
根据索引获取英文列
设置值
宽度设置
直接输出下载
自动计算列宽
函数formula
PhpSpreadsheet是一个纯PHP类库,使你能够读写Excel、LibreOffic Calc等这样的表格格式。
https://phpspreadsheet.readthedocs.io/en/develop/
默认情况会提示找不到库,上composer找是有的,是因为还没有稳定版,所以要指定版本 1.0.0beta依赖
The following software is required to develop using PhpSpreadsheet:PHP version 5.6 or newer
PHP extension php_zip enabled
PHP extension php_xml enabled
PHP extension php_gd2 enabled (if not compiled in)
默认使用ZipArchive来压缩保存
注意读写权限
注:如果不想保存到文件,可以传入
还可以让其自适应(不靠谱,建议自行设置)
https://phpspreadsheet.readthedocs.io/en/develop/topics/calculation-engine/#function-reference
可参考suanli项目
安装
简单示例
通过模板来生成文件
释放内存
单元格
根据索引获取英文列
设置值
宽度设置
直接输出下载
自动计算列宽
函数formula
PhpSpreadsheet是一个纯PHP类库,使你能够读写Excel、LibreOffic Calc等这样的表格格式。
https://phpspreadsheet.readthedocs.io/en/develop/
坑
列从0开始算,行从1开始算$sheet->setCellValueByColumnAndRow(0,1,‘特别说明‘);
安装
composer require phpoffice/phpspreadsheet 版本号
默认情况会提示找不到库,上composer找是有的,是因为还没有稳定版,所以要指定版本 1.0.0beta依赖
The following software is required to develop using PhpSpreadsheet:PHP version 5.6 or newer
PHP extension php_zip enabled
PHP extension php_xml enabled
PHP extension php_gd2 enabled (if not compiled in)
默认使用ZipArchive来压缩保存
注意读写权限
简单示例
require ‘vendor/autoload.php‘; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue(‘A1‘, ‘Hello World !‘); $writer = new Xlsx($spreadsheet); $writer->save(‘hello world.xlsx‘);默认保存到执行php的根目录,以thinkphp为例index.php在
D:\wwwroot\thinkphp\public,那么文件就保存在这
注:如果不想保存到文件,可以传入
php://output或
php://stdout直接输出(例如html,输出网页)
通过模板来生成文件
全用代码写太累,可以用模板来修改,但是对于动态数据,还是要由代码生成//通过工厂模式创建内容 $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load(‘template.xlsx‘); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->getCell(‘A1‘)->setValue(‘John‘); $worksheet->getCell(‘A2‘)->setValue(‘Smith‘); //通过工厂模式来写内容 $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, ‘Xls‘); $writer->save(‘write.xls‘);
释放内存
为了防止内存泄露,建议用完手动清理$spreadsheet->disconnectWorksheets(); unset($spreadsheet);
单元格
根据索引获取英文列
其中A=0Cell::stringFromColumnIndex($pColumn)
设置值
$worksheet->getCell(‘A1‘)->setValue(‘John‘); $sheet->setCellValue(‘A1‘, ‘Hello World !‘); $sheet->setCellValueByColumnAndRow($columnIndex, $rowIndex, $value);
宽度设置
$this->getColumnDimension($columnIndex)->setWidth($width);
还可以让其自适应(不靠谱,建议自行设置)
$sheet->calculateColumnWidths();
直接输出下载
header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘);//告诉浏览器输出07Excel文件 //header(‘Content-Type:application/vnd.ms-excel‘);//告诉浏览器将要输出Excel03版本文件 header(‘Content-Disposition: attachment;filename="01simple.xlsx"‘);//告诉浏览器输出浏览器名称 header(‘Cache-Control: max-age=0‘);//禁止缓存 $writer = new Xlsx($spreadsheet); $writer->save(‘php://output‘);
自动计算列宽
function autoFitColumnWidthToContent($sheet, $fromCol, $toCol) { if (empty($toCol) ) {//not defined the last column, set it the max one $toCol = $sheet->getColumnDimension($sheet->getHighestColumn())->getColumnIndex(); } for($i = $fromCol; $i <= $toCol; $i++) { $sheet->getColumnDimension($i)->setAutoSize(true); } $sheet->calculateColumnWidths(); }
函数formula
https://phpspreadsheet.readthedocs.io/en/develop/references/function-list-by-name/https://phpspreadsheet.readthedocs.io/en/develop/topics/calculation-engine/#function-reference
$worksheet->setCellValue(‘A12‘, ‘=DMIN(A4:E10,"Profit",A1:A2)‘); $retVal = $worksheet->getCell(‘A12‘)->getCalculatedValue(); // $retVal = 225
可参考suanli项目
相关文章推荐
- TP5.1 使用PhpSpreadsheet插件导出excel文件出现乱码问题如何解决啊?
- 电子表格文件读写控件Spreadsheet免费下载购买地址
- php 下载excel文件,单独设置工作表(sheet1,sheet2,sheet3....)
- php远程抓取(下载)文件到本项目指定目录中
- PHP 简单处理--文件下载--文件上传
- PHP代码实现远程下载文件到本地的函数
- PHP下载远程文件的3种方法以及性能考虑
- android从服务器下载文件(php+apache+win7+MySql)
- 学习工作中的一个PHP文件下载代码
- Android端通过Okhttp与PHP服务器进行交互并实现文件上传下载(一)
- PHP防盗链文件下载的基本思想
- php下载文件
- php大文件下载
- PHP远程下载大文件方法,防止内存溢出
- php文件的上传和下载
- PHP文件下载原理
- 解析php多线程下载远程多个文件
- php操作ftp上传文件、创建目录、删除文件、删除目录、下载文件到本地
- PHP下载并重命名文件
- PHP生成excel表格文件并下载