php Spreadsheet 导出,使用PhpSpreadsheet导出Excel文件
namespace frontendcontrollers;
use Yii;
use yiiwebController;
use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetIOFactory;
use PhpOfficePhpSpreadsheetStyleBorder;
/**
* 导出Excel
*/
class ExcelController extends Controller
{
public function actionIndex($id=0)
{
$data =
[
['title_A' => 'A', 'title_B' => 'B', 'title_C' => 'C', 'title_D' => 'D', 'title_E' => 'E', 'title_F' => 'F', 'title_G' => 'G'],
['title_A' => 'A1', 'title_B' => 'B1', 'title_C' => 'C1', 'title_D' => 'D1', 'title_E' => 'E1', 'title_F' => 'F1', 'title_G' => 'G1'],
['title_A' => 'A2', 'title_B' => 'B2', 'title_C' => 'C2', 'title_D' => 'D2', 'title_E' => 'E2', 'title_F' => 'F2', 'title_G' => 'G2'],
];
$data2 =
[
['title_A' => 'A', 'title_B' => 'B', 'title_C' => 'C', 'title_D' => 'D', 'title_E' => 'E', 'title_F' => 'F', 'title_G' => 'G'],
['title_A' => 'A1', 'title_B' => 'B1', 'title_C' => 'C1', 'title_D' => 'D1', 'title_E' => 'E1', 'title_F' => 'F1', 'title_G' => 'G1'],
['title_A' => 'A2', 'title_B' => 'B2', 'title_C' => 'C2', 'title_D' => 'D2', 'title_E' => 'E2', 'title_F' => 'F2', 'title_G' => 'G2'],
];
$data3 =
[
['title_A' => 'A', 'title_B' => 'B', 'title_C' => 'C', 'title_D' => 'D', 'title_E' => 'E', 'title_F' => 'F', 'title_G' => 'G'],
['title_A' => 'A1', 'title_B' => 'B1', 'title_C' => 'C1', 'title_D' => 'D1', 'title_E' => 'E1', 'title_F' => 'F1', 'title_G' => 'G1'],
['title_A' => 'A2', 'title_B' => 'B2', 'title_C' => 'C2', 'title_D' => 'D2', 'title_E' => 'E2', 'title_F' => 'F2', 'title_G' => 'G2'],
];
$title = ['类别', '子类', '需求编号', '安全需求', '建议采用', '确认是否采用', '不采用原因']; $title2 = ['类别', '子类', '需求编号', '安全需求', '建议采用', '确认是否采用', '不采用原因']; $title3 = ['需求编号', '需求详解']; // Create new Spreadsheet object $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet()->setTitle('基础安全需求'); $sheet2 = $spreadsheet->createSheet(1)->setTitle('场景安全需求'); $sheet3 = $spreadsheet->createSheet(2)->setTitle('安全需求说明'); // 方法一,使用 setCellValueByColumnAndRow //设置单元格内容 //设置表头 foreach ($title as $key => $value) { // 单元格内容写入 $sheet->setCellValueByColumnAndRow($key + 1, 1, $value); } foreach ($title2 as $key => $value) { $sheet2->setCellValueByColumnAndRow($key + 1, 1, $value); } foreach ($title3 as $key => $value) { $sheet3->setCellValueByColumnAndRow($key + 1, 1, $value); } // sheet1 基础安全需求 $row = 2; // 从第二行开始 foreach ($data as $item) { $column = 1; foreach ($item as $value) { // 单元格内容写入 $sheet->setCellValueByColumnAndRow($column, $row, $value); $column++; } $row++; } // sheet2 场景安全需求 $rowOfSheet2 = 2; // 从第二行开始 foreach ($data2 as $item) { $column = 1; foreach ($item as $value) { // 单元格内容写入 $sheet2->setCellValueByColumnAndRow($column, $rowOfSheet2, $value); $column++; } $rowOfSheet2++; } // sheet3 安全需求详解 $rowOfSheet3 = 2; // 从第二行开始 foreach ($data3 as $item) { $column = 1; foreach ($item as $value) { // 单元格内容写入 $sheet3->setCellValueByColumnAndRow($column, $rowOfSheet3, $value); $column++; } $rowOfSheet3++; } //设定样式 //所有sheet的表头样式 加粗 $font = [ 'font' => [ 'bold' => true, ], ]; //所有sheet的内容样式 加黑色边框 $borders = [ 'borders' => [ 'allBorders' => [ 'borderStyle' => Border::BORDER_THIN, 'color' => ['argb' => 'black'], ], ], ]; $sheet->getStyle('A1:G1')->applyFromArray($font); $sheet->getColumnDimension('C')->setWidth(12); $sheet->getColumnDimension('D')->setWidth(101); $sheet->getColumnDimension('F')->setWidth(25); $sheet->getColumnDimension('G')->setWidth(25); $sheet2->getStyle('A1:G1')->applyFromArray($font); $sheet2->getColumnDimension('C')->setWidth(12); $sheet2->getColumnDimension('D')->setWidth(101); $sheet2->getColumnDimension('F')->setWidth(25); $sheet2->getColumnDimension('G')->setWidth(25); $sheet3->getStyle('A1:B1')->applyFromArray($font); $sheet3->getColumnDimension('A')->setWidth(15); $sheet3->getColumnDimension('B')->setWidth(130); $sheet->getStyle('A1:G' . ($row - 1))->applyFromArray($borders); $sheet2->getStyle('A1:G' . ($rowOfSheet2 - 1))->applyFromArray($borders); $sheet3->getStyle('A1:B' . ($rowOfSheet3 - 1))->applyFromArray($borders)->getAlignment()->setWrapText(true); // 方法二,使用 setCellValue //表头 //设置单元格内容 /*$titCol = 'A'; foreach ($title as $key => $value) { // 单元格内容写入 $sheet->setCellValue($titCol . '1', $value); $titCol++; } $row = 2; // 从第二行开始 foreach ($data as $item) { $dataCol = 'A'; foreach ($item as $value) { // 单元格内容写入 $sheet->setCellValue($dataCol . $row, $value); $dataCol++; } $row++; }*/ // Redirect output to a client’s web browser (Xlsx) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="安全需求.xlsx"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output'); exit; } }
php Spreadsheet 导出,使用PhpSpreadsheet导出Excel文件相关推荐
- php mysql生成excel文件,PHP导出MySQL数据到Excel文件简单示例
这篇文章主要为大家详细介绍了PHP导出MySQL数据到Excel文件简单示例,具有一定的参考价值,可以用来参考一下. 对phpPHP导出MySQL数据到Excel文件简单示例感兴趣的小伙伴,下面一起跟 ...
- anki 插入表格_Anki之导出卡牌组到Excel文件
最近有导出Anki卡牌组到Excel文件的需要,查到了这个教程,Anki插件--导出卡牌到Excel文件-LearnHacks,但结果并不令人满意,所导出的Excel文件只有一列,所选中的卡片字段全部 ...
- POI3.8解决导出大数据量excel文件时内存溢出的问题
POI3.8解决导出大数据量excel文件时内存溢出的问题 参考文章: (1)POI3.8解决导出大数据量excel文件时内存溢出的问题 (2)https://www.cnblogs.com/feng ...
- 通过Java批量导出带有图片的Excel文件数据
批量导出带有图片的Excel文件 一.思路解析 二.关键源码 三.总结 Java通过POI或者一些常见的Excel工具类能够轻易导出后台的结构化数据,但是最近面临一个新需求,需要将对应记录数据和图片网 ...
- POI动态导出多层表头的EXCEL文件
POI动态导出多层表头的EXCEL文件 表格表头导出 单行表头 多行表头 以前接触过一个很古老的导出Excel,实现的逻辑是先声明一个导出的Excel模板,模板里报表的表头名称和顺序是固定的,这样执行 ...
- php按列导出excel2010,excel2010官方下载 免费完整版 PHP导出MySQL数据到Excel文件fputcsv...
这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件. 复制代码 代码如下: // 输出Excel文件头,可把user.csv换成你要的文件名 header('Conten ...
- PHP通过phpspreadsheet读取Excel文件
PHP通过phpspreadsheet读取Excel文件 安装 通过 Composer 安装 composer require phpoffice/phpspreadsheet 读文件 三行代码解决E ...
- php Spreadsheet Csv,基于 PhpSpreadsheet 简单 Excel 导入导出
GitHub 安装 composer require jianyan74/php-excel 引入 use jianyan\excel\Excel; Demo 目前只支持文字.函数.选择.日期转换 / ...
- pandas之数据文件导入和导出(python读取.csv,.txt,excel文件(.xlsx)以及导出为.csv、excel文件)
文件类型:.csv,.txt,.xlsx .csv文件,一行即为数据表的一行.生成数据表字段用逗号隔开(英文的逗号!!!!).csv文件用记事本和excel都能打开,用记事本打开显示逗号,用excel ...
- Java后端实现Excel导出,及添加Excel文件标题样式
简单Java实现Excel文件导出 Java导出要在action层(controller层)中操作 需要到的jar包: 后端代码: 后面两个函数都是设置Excel文件里的标题样式,专注第一个方法就可以 ...
最新文章
- ​如何保护Java程序
- Xamarin Essentials教程陀螺仪Gyroscope
- python apache配置_Apache运行Python的配置
- 8.MySQL 数据操作 DML
- poj3249Test for Job(记忆化搜索)
- 帆软发布大数据直连引擎FineDirect,对焦大数据BI
- easyUI 的combobox如何获取除valueField和textField外的三个值
- [数学建模]数学规划模型
- Panabit应用层流量管理系统
- vsto mysql_VSTO–Visio | 学步园
- 饥荒正版怎么创建专用服务器,饥荒联机版如何创建本地服务器 创建本地服务器步骤...
- 楼梯计算机公式,楼梯踏步数计算公式是什么
- Fibonacci数列(斐波那契数列)
- Influx Sql系列教程三:measurement 表
- 毕业后5年,我终于变成了月薪13000的软件测试工程师
- 协议实例说明--租房
- Java学习——类和对象(上)
- Python学习笔记:数据可视化(一)
- 飞飞影视系统php版怎么进,飞飞影视系统PHPVOD搬家图文教程
- hackthebox- Arctic (考点:ColdFusion安全/windows)
热门文章
- Rokid发布超低延迟AR眼镜手势空间识别算法
- KeePass Password Safe(互联网密码管理器软件)官方中文版V2.48.1 | 密码管理工具哪个好用?
- 微信小程序云开发———云数据库
- Win10开启热点共享后断网怎么解决?
- 三星手机翻新机的识别
- 阴阳师可以转系统的服务器有哪些,阴阳师怎么转系统 阴阳师跨系统角色转移服务介绍...
- 单播,组播,广播概念
- 【IoT】产品设计:用实际案例,手把手教你写BRD(商业需求文档)
- AI艺术奇幻之旅的诞生
- 官方新动作!老子云3D开发SDK又更新:新增3D测量,路径动画