安装
简单示例
通过模板来生成文件
释放内存
单元格
根据索引获取英文列
设置值
宽度设置
直接输出下载
自动计算列宽
函数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://outputphp://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文件下载相关推荐

  1. PHPExcel替代方案PhpSpreadsheet

    PHPExcel上一版本1.8.1于2015年发布.该项目已不再维护,可以使用,但是不建议再使用.所有用户都应该迁移到其直接后继者PhpSpreadsheet或其他替代方案.PhpSpreadshee ...

  2. PhpSpreadsheet中文文档 | Spreadsheet操作教程实例

    Spreadsheet 支持excel 函数 公式使用 <?phpnamespace app# 给类文件的命名空间起个别名use PhpOffice\PhpSpreadsheet\Spreads ...

  3. php iofactory列,PhpSpreadsheet中文文档 | Spreadsheet操作教程实例

    Spreadsheet 支持excel 函数 公式使用 namespace app # 给类文件的命名空间起个别名 use PhpOffice\PhpSpreadsheet\Spreadsheet; ...

  4. PHPSpreadsheet

    因为最开始做 PHP 的时候都是用 PHPExcel 来导出 excel.后来一直没有继续在做 PHP.前段时间做的一个小 tool 需要实现excel 的导出.在使用 PHPExcel 的时候一直报 ...

  5. phpspreadsheet 导出pdf文件

    PhpOffice\PhpSpreadsheet不但可以操作Excel和导出Excel,也可以用来导出pdf文件.不过需要安装扩展,Tcpdf/Dompdf等三方类库,否则提示类库不存在. 目录 安装 ...

  6. PHP使用PhpSpreadsheet操作Excel

    一.PhpSpreadsheet 介绍 1.PhpSpreadsheet 是什么 PhpSpreadsheet是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式 PhpS ...

  7. ini文件怎么使用_ftp文件下载工具,ftp文件下载工具是怎么使用的?使用指南

    ftp文件下载工具是什么工具,可能有人会回答说不知道,因为一般只有从事网站管理的工作者会使用的多一点.但不是每个人生来就会的,所以刚开始肯定都会学习怎么使用.这篇文章就来教一下大家ftp文件下载工具是 ...

  8. 在ASP.NET中跟踪和恢复大文件下载

    在Web应用程序中处理大文件下载的问题一直出了名的困难,因此对于大多数站点来说,如果用户的下载被中断了,它们只能说悲哀降临到用户的身上了.但是我们现在不必这样了,因为你可以使自己的ASP.NET应用程 ...

  9. Apache,Nginx,Lighttpd分别使用X-sendfile功能提升文件下载性能

    关于mod_xsendfile https://tn123.org/mod_xsendfile/ Lighttpd中的X-sendfile RoR网站如何利用lighttpd的X-sendfile功能 ...

  10. java 文件下载 【学习记录】

    工具类 public static Boolean downloadExcelFile(HttpServletResponse response, String fileName) {OutputSt ...

最新文章

  1. eclipse运行程序时只有run on server
  2. Swift语言中class、struct、enum的联系与区别
  3. CCNA学习笔记大全
  4. cmake / aux_source_directory
  5. php5.4以下,json_encode不转义实现方法
  6. 微软放弃IE浏览器 应尽快完成国产化替代
  7. Dropbox推独立应用,公司估值已达100亿美元
  8. 【面试收藏】Redis最全面试题
  9. 20145231熊梓宏 《网络对抗》 实验四 恶意代码分析
  10. 代理ip怎么使用_爬虫如何使用代理ip解决封禁?
  11. 俄罗斯方块中方块的旋转变形
  12. row format delimited fields terminated by “,“含义是以‘,‘结尾的行格式分隔字段
  13. Java输出PPT文件(三) - 饼图数据替换
  14. 大学生学科竞赛管理网站系统、学科竞赛管理系统
  15. 实现点击按钮 复制文本内容
  16. nacl溶解度_氯化钠溶解度4 氯化钠溶解度不同温度的
  17. 【LeetCode】127. Word Ladder 解题报告(Python)
  18. git 删除文件 、只删除远程仓库文件、更换远程仓库
  19. Fiddler结合苹果11抓包小程序 (最新)
  20. RE管理器root权限彻底清除教程

热门文章

  1. VOT 数据集 groundtruth 8个维度 转成 4个维度的方法
  2. xinput1_4.dll丢失怎么修复?修复方法分享
  3. School Regional Team Contest, Saratov, 2011-F. Spiders-求树直径
  4. 计算机游戏缓存在哪里清楚,电脑清除缓存在哪里-怎么干净的清理电脑缓存电脑很卡东西清理不干净 爱问知识人...
  5. 微信支付接口操作说明
  6. JAVA导出exls时报oom,Poi导出产生OOM解决方案
  7. pdf 转化为jpg python 批量转化
  8. 某项目的双代号网络图如下所示_某工程项目的双代号网络计划如下图所示(时间单位:月)。...
  9. 如果制作一个好看的Vlog视频,摄影剪辑声音博主推荐
  10. Centos 7系统密码破解