phpspreadsheet文件下载
安装
简单示例
通过模板来生成文件
释放内存
单元格
根据索引获取英文列
设置值
宽度设置
直接输出下载
自动计算列宽
函数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=0
Cell::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项目
phpspreadsheet文件下载相关推荐
- PHPExcel替代方案PhpSpreadsheet
PHPExcel上一版本1.8.1于2015年发布.该项目已不再维护,可以使用,但是不建议再使用.所有用户都应该迁移到其直接后继者PhpSpreadsheet或其他替代方案.PhpSpreadshee ...
- PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Spreadsheet 支持excel 函数 公式使用 <?phpnamespace app# 给类文件的命名空间起个别名use PhpOffice\PhpSpreadsheet\Spreads ...
- php iofactory列,PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Spreadsheet 支持excel 函数 公式使用 namespace app # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; ...
- PHPSpreadsheet
因为最开始做 PHP 的时候都是用 PHPExcel 来导出 excel.后来一直没有继续在做 PHP.前段时间做的一个小 tool 需要实现excel 的导出.在使用 PHPExcel 的时候一直报 ...
- phpspreadsheet 导出pdf文件
PhpOffice\PhpSpreadsheet不但可以操作Excel和导出Excel,也可以用来导出pdf文件.不过需要安装扩展,Tcpdf/Dompdf等三方类库,否则提示类库不存在. 目录 安装 ...
- PHP使用PhpSpreadsheet操作Excel
一.PhpSpreadsheet 介绍 1.PhpSpreadsheet 是什么 PhpSpreadsheet是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式 PhpS ...
- ini文件怎么使用_ftp文件下载工具,ftp文件下载工具是怎么使用的?使用指南
ftp文件下载工具是什么工具,可能有人会回答说不知道,因为一般只有从事网站管理的工作者会使用的多一点.但不是每个人生来就会的,所以刚开始肯定都会学习怎么使用.这篇文章就来教一下大家ftp文件下载工具是 ...
- 在ASP.NET中跟踪和恢复大文件下载
在Web应用程序中处理大文件下载的问题一直出了名的困难,因此对于大多数站点来说,如果用户的下载被中断了,它们只能说悲哀降临到用户的身上了.但是我们现在不必这样了,因为你可以使自己的ASP.NET应用程 ...
- Apache,Nginx,Lighttpd分别使用X-sendfile功能提升文件下载性能
关于mod_xsendfile https://tn123.org/mod_xsendfile/ Lighttpd中的X-sendfile RoR网站如何利用lighttpd的X-sendfile功能 ...
- java 文件下载 【学习记录】
工具类 public static Boolean downloadExcelFile(HttpServletResponse response, String fileName) {OutputSt ...
最新文章
- eclipse运行程序时只有run on server
- Swift语言中class、struct、enum的联系与区别
- CCNA学习笔记大全
- cmake / aux_source_directory
- php5.4以下,json_encode不转义实现方法
- 微软放弃IE浏览器 应尽快完成国产化替代
- Dropbox推独立应用,公司估值已达100亿美元
- 【面试收藏】Redis最全面试题
- 20145231熊梓宏 《网络对抗》 实验四 恶意代码分析
- 代理ip怎么使用_爬虫如何使用代理ip解决封禁?
- 俄罗斯方块中方块的旋转变形
- row format delimited fields terminated by “,“含义是以‘,‘结尾的行格式分隔字段
- Java输出PPT文件(三) - 饼图数据替换
- 大学生学科竞赛管理网站系统、学科竞赛管理系统
- 实现点击按钮 复制文本内容
- nacl溶解度_氯化钠溶解度4 氯化钠溶解度不同温度的
- 【LeetCode】127. Word Ladder 解题报告(Python)
- git 删除文件 、只删除远程仓库文件、更换远程仓库
- Fiddler结合苹果11抓包小程序 (最新)
- RE管理器root权限彻底清除教程
热门文章
- VOT 数据集 groundtruth 8个维度 转成 4个维度的方法
- xinput1_4.dll丢失怎么修复?修复方法分享
- School Regional Team Contest, Saratov, 2011-F. Spiders-求树直径
- 计算机游戏缓存在哪里清楚,电脑清除缓存在哪里-怎么干净的清理电脑缓存电脑很卡东西清理不干净 爱问知识人...
- 微信支付接口操作说明
- JAVA导出exls时报oom,Poi导出产生OOM解决方案
- pdf 转化为jpg python 批量转化
- 某项目的双代号网络图如下所示_某工程项目的双代号网络计划如下图所示(时间单位:月)。...
- 如果制作一个好看的Vlog视频,摄影剪辑声音博主推荐
- Centos 7系统密码破解