PHP高级转载 | phpspreadsheet开发手记PhpSpreadsheet是一个纯PHP类库,使你能够读写Excel、LibreOffic Calc等这样的表格格式。 https://phpspreadsheet.readthedocs.io/en/develop/ 坑 列从0开始算,行从1开始算 $sheet->setCellValueByColumnAndRow(0,1,‘特别说明‘); 安装 co作者王明昌发布时间2018-10-31最后更新2018-10-31文章目录坑安装简单示例通过模板来生成文件释放内存单元格根据索引获取英文列设置值宽度设置直接输出下载自动计算列宽函数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 newerPHP extension php_zip enabledPHP extension php_xml enabledPHP extension php_gd2 enabled (if not compiled in) 默认使用ZipArchive来压缩保存 注意读写权限 简单示例复制require ‘vendor/autoload.php‘; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spredsheet = new Spreadsheet(); $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(); } 函数formulahttps://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
2018-08-22支付宝支付接口错误说明错误查询 https://docs.open.alipay.com/58/103599/ 今天我遇到的一个错误,经过询问小二,网关错误,错误如下 ILLEGAL_ACCESS_SWITCH_SYSTE
2019-12-10阿里巴巴开源镜像提供的 packagist 镜像服务全局配置(推荐) 所有项目都会使用该镜像地址: composer config -g repo.packagist composer https://mirrors.aliyun.com/compos
2018-08-26实例 | 支付宝支付(使用md5加密)参数的获取 pid|key获取: 商户中心---账户管理---查看pid|key https://openhome.alipay.com/platform/keyManage.htm?keyType=
2018-10-31实例 | tp5使用七牛云上传图片和文件/删除文件thinkphp5中使用七牛云 下载 https://github.com/qiniu/php-sdk vendor文件下 新建文件 application/extra/qiniu.php retur
2018-05-28ajax-post传值的写法var data = {type:type,is_ok:is_ok,id:id}; $("#train").on("click",function(){ var id = $("#id_res").v
2018-05-27Ajax异步搜索内容,并显示使用ajax异步搜索内容,如果符合内容,则一行行的显示,每次查询时清空上次的记录 $("#search").on("click",function(){ var key = $("#keywords"