参看文档
https://www.cnblogs.com/zx-admin/p/11653863.html
https://blog.csdn.net/baidu_31950961/article/details/90692098
https://www.cnblogs.com/doseoer/p/11041856.html


//使用Spreadsheet类
use PhpOffice\PhpSpreadsheet\Spreadsheet;
//xlsx格式类
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
//可以生成多种格式类
use PhpOffice\PhpSpreadsheet\IOFactory;public function test(){$goods = Db::table('rht_product_launch_goods')->field('brand,supplier_name,pro_name,pro_spec,supplier_cost,approval_sales_price,retail_price')->where('pid',102)->select();if(empty($goods)){return ['code'=>0,'info'=>'指令单中商品为空'];}ini_set('max_execution_time', '0');$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();
//设置sheet的名字  两种方法
//        $sheet->setTitle('phpspreadsheet——demo');$spreadsheet->getActiveSheet()->setTitle('上市指令模板');
//设置第一行小标题//合并单元格  并初始化模板数据$spreadsheet->getActiveSheet()->mergeCells('A1:G1');$spreadsheet->getActiveSheet()->mergeCells('A2:G2');$spreadsheet->getActiveSheet()->mergeCells('B5:G5');$spreadsheet->getActiveSheet()->mergeCells('A6:G6');$sheet->setCellValue('A1', '测试连锁有限公司 ');$sheet->setCellValue('A2', '基本信息区');$sheet->setCellValue('A3', '申请人');$sheet->setCellValue('C3', '部门');$sheet->setCellValue('E3', '申请日期');$sheet->setCellValue('A4', '标题');$sheet->setCellValue('A5', '申请内容');$sheet->setCellValue('A6', '包装设计信息区');$sheet->setCellValue('A7', '使用商标');$sheet->setCellValue('B7', '生产单位');$sheet->setCellValue('C7', '品名');$sheet->setCellValue('D7', '规格');$sheet->setCellValue('E7', '采购价(元)');$sheet->setCellValue('F7', '销售结算价(元)');$sheet->setCellValue('G7', '年销售预测(万元)');//循环输出产品信息foreach($goods as $g_key=>$g_value){$i = 8+$g_key;$sheet->setCellValue('A'.$i, $g_value['brand']);$sheet->setCellValue('B'.$i, $g_value['supplier_name']);$sheet->setCellValue('C'.$i, $g_value['pro_name']);$sheet->setCellValue('D'.$i, $g_value['pro_spec']);$sheet->setCellValue('E'.$i, $g_value['supplier_cost']);$sheet->setCellValue('F'.$i, $g_value['approval_sales_price']);$sheet->setCellValue('G'.$i, $g_value['retail_price']);}//统计商品往后的数据排版/* $good_num = count($goods)+7;$sheet->setCellValue('A'.($good_num+1), '最低零售价');$sheet->setCellValue('A'.($good_num+2), '销售公司');$sheet->setCellValue('A'.($good_num+3), '购进单位');*///合并单元格  并初始化模板数据/*$spreadsheet->getActiveSheet()->mergeCells("A1".($good_num+4).":"."H1".($good_num+4));$sheet->setCellValue('A'.($good_num+4), '签字意见区');$sheet->setCellValue('A'.($good_num+5), '子公司质量负责人');$sheet->setCellValue('A'.($good_num+6), '子公司总经理');$sheet->setCellValue('A'.($good_num+7), '品牌品质管理中心');$sheet->setCellValue('A'.($good_num+8), '商业运营部');$sheet->setCellValue('A'.($good_num+9), '商委会主任');*///设置文字水平居中$styleArray = ['alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,],];$sheet->getStyle('A1')->applyFromArray($styleArray);$sheet->getStyle('A2')->applyFromArray($styleArray);$sheet->getStyle('A6')->applyFromArray($styleArray);//将A3到D4合并成一个单元格
//        $spreadsheet->getActiveSheet()->mergeCells('A3:D4');
//拆分合并单元格
//        $spreadsheet->getActiveSheet()->unmergeCells('A3:D4');//给数据画上边框$styleArray = ['borders' => ['allBorders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN //细边框]]];for ($i = 1;$i<=count($goods)+7;$i++){$sheet->getStyle('A'.$i.':'.'G'.$i)->applyFromArray($styleArray);//设置文字垂直居中$sheet->getStyle('A'.$i.':'.'G'.$i)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);}//设置行高$spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(50);$spreadsheet->getActiveSheet()->getRowDimension('5')->setRowHeight(50);//设置列的宽度$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(20);$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(20);$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(20);$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(20);$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(20);$spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(20);//设置第一行字体$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setBold(true)->setName('Arial')->setSize(20);
//        $spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);$file_name = '上市指令模板'.date('Y-m-d', time()).rand(1000, 9999);
//第一种保存方式$writer = new Xlsx($spreadsheet);//保存的路径可自行设置$file_name =env('ROOT_PATH').'public/upload/temp/'.$file_name.".Xlsx";$writer->save($file_name);
//第二种直接页面上显示下载/* $file_name = $file_name . ".xlsx";header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="'.$file_name.'"');header('Cache-Control: max-age=0');$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
//注意createWriter($spreadsheet, 'Xls') 第二个参数首字母必须大写$writer->save('php://output');*///事件后销毁资源unset($spreadsheet);}

显示结果页面

phpspreadsheet生成Excel表格相关推荐

  1. c#读取生成excel表格文件xls、xlsx格式文件

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#存储生成excel表格格式xls.xlsx格式的文件 需要电脑安装对应版本的office,并且在项目中引用excel 测试代码 static vo ...

  2. 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

    [PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件 ...

  3. MATLAB生成excel表格

    MATLAB生成excel表格 核心函数 实例 常规 特殊 其他 by HPC_ZY 核心函数 xlswrite(filename, data); 其中,data可以是二维数组(mat)或二维元胞(c ...

  4. vue3.0 + xlsx 实现纯前端生成excel表格

    vue3.0 + xlsx 实现纯前端生成excel表格 1.安装依赖 npm install xlsx --save 2.导入依赖 import * as XLSX from 'xlsx' // V ...

  5. html5生成excel,H5纯前端生成Excel表格

    H5纯前端生成Excel表格方法如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 var arr = [ 14 { 15 "姓名":"喵喵喵" ...

  6. php怎么把网页生成excel,php网页表格生成excel表格数据-php怎么把数据生成excel表格...

    php导出生成excel表格几种方法介绍 这属于php的技术: php可以用PHPExcel直接导出成excel文件: 代码如下: require_once("../lib/excelcre ...

  7. java使用jxl生成excel表格,jsp使用js下载excel文件xls

    java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...

  8. 使用javascript生成Excel表格(内含实例demo),可下载xlsx.core.min.js、excel.js包

    分享一个我的小demo:GuitHub ExcelDownload 实例下载(布局简陋,随便看看就行),喜欢就给个star,哈哈 一.生成excel表格的原理 打蛇打七寸,擒贼先擒王.通过标题就可以知 ...

  9. [VS_C#实战案例](1)批量提取文件夹内txt文件的指定字符串生成excel表格

    [VS_C#实战案例](1)批量提取文件夹内txt内容生成excel表格 个人边学习边开发的日常总结,发布在此与各位交流.共同进步. 语言:c# 软件:visual studio 实现功能:提取指定文 ...

最新文章

  1. golang源码分析-启动过程概述
  2. OpenCV最基本的测试代码-图像的读取与显示
  3. 整理前端css/js/jq常见问题及解决方法(3)
  4. AtCoder 2305 [AGC010D] Decrementing(博弈)
  5. 1000层的Transformer,诞生了!
  6. Redis RDB与AOF持久化详解
  7. linux : epoll详解
  8. 转 java synchronized详解
  9. easyui validatebox设置默认值时 去掉校验
  10. PyTorch 学习笔记(七):PyTorch的十个优化器
  11. 1054: 猴子吃桃
  12. 修改GDAL库支持IRSP6数据
  13. Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
  14. 5.1数学建模与MATLAB--层次分析法(评价类问题)
  15. 完整的连接器设计手册_特斯拉的高压连接器
  16. smb协议讲解_SMB协议(使用说明+过程详解+抓包分析)
  17. CSR867x — CSR蓝牙开发调试经验
  18. git rebase 和 gite merge 区别
  19. 计算机的硬盘配额如何更改,磁盘配额怎么设置
  20. C++语言的15个晦涩特性

热门文章

  1. iPhone X忘记了开机密码
  2. 计算机组成原理在线测试,计算机组成原理第01章在线测试
  3. KUKA机器人与S7-300 PLC进行PROFINET通信的具体方法和步骤(非常详细)
  4. Java爬取并下载酷狗TOP500歌曲 侵立删
  5. 使用Tableau制作扫雷游戏和三维地图
  6. Tensorflow 1.x 和 Pytorch 中 Conv2d Padding的区别
  7. VL822- GEN2 10Gbps简述及运用(USB3.1 HUB芯片)
  8. python 强制结束线程
  9. “三分钟”之SVG画微信LOGO
  10. Win10闹钟没有声音问题的解决