adnzaki / excel-creator
PHPOffice电子表格简化器
Requires
- php: ^7.4 || ^8.0
- phpoffice/phpspreadsheet: ^1.28
README
简单使用PHPSpreadsheet的方式
简介
ExcelCreator 是一个附加工具,使您能够更轻松地使用 PHPSpreadsheet。ExcelCreator 将像 $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(12)
这样的方法调用简化为 $excel->setColumnWidth('A', 12)
。您可能认为这并没有真正帮助您,但想象一下,如果您必须多次编写像在 PHPSpreadsheet 中通常使用的那样代码。如果您是一个懒惰的程序员,那么 ExcelCreator 是一个完美的工具,可以方便地访问 PHPSpreadsheet 中的常用功能。
安装
您只需要通过以下选项使用 Composer 安装 ExcelCreator。
存在 composer.json
文件
如果您已经有了现有的 composer.json
文件,请添加一个指向 "adnzaki/excel-creator": "^1.0"
的要求
{
"require": {
"adnzaki/excel-creator": "^1.0"
}
}
然后运行 composer update
以安装它。
没有 composer.json
文件
运行 composer require adnzaki/excel-creator
以安装它并自动创建 composer.json
文件。
安装最新源代码
如果您希望获取 ExcelCreator 的最新源代码,只需将版本从 ^1.0
更改为 dev-main
,然后运行 composer update
以切换源代码。
使用方法
本节将指导您如何将 PHPSpreadsheet 的原始用法转换为 ExcelCreator
- 初始化 ExcelCreator
require 'vendor/autoload.php'
$excel = new ExcelCreator();
- 调用 Xlsx 编写器
$excel->writer($excel->spreadsheet);
- 调用 Xlsx 读取器
$excel->reader($excel->spreadsheet);
- 将 Excel 文件保存到客户端浏览器变得更加简单
$excel->save('hello world.xlsx'); // save in Excel 2007 format
// or
$excel->save('hello world.xlsx', 'Xls'); // save in Xls format
注意:在使用此方法之前,您必须设置 Content-Type 标头。并且第二个参数应遵循 PHPSpreadsheet 文件类型。
- 将样式应用到单元格
应用样式的最佳方式是使用数组并将其作为参数传递
$dataStyle = [
'font' => [
'name' => 'Arial',
'size' => 10,
],
'border' => [
'borderStyle' => $excel->border::BORDER_THIN,
'color' => $excel->color::COLOR_BLACK,
],
];
$excel->applyStyle($dataStyle, 'A2:D10');
ExcelCreator 支持的样式有 Alignment
、Border
、Color
、Fill
和 Font
- 用数据填充单元格
ExcelCreator 提供了一种简单的方法来用您自己的数据/值填充单元格。ExcelCreator 使用 PHPSpreadsheet 的方法链Spreadsheet::getActiveSheet()->fromArray($value);
$data = [
['Name', 'Place of birth'],
['Adnan Zaki', 'Jakarta'],
['Dien Azizah', 'Bojonegoro']
];
$excel->fillCell($data); // fill cell from A1
// or
$excel->fillCell($data, 'A2'); // fill cell from A2
- 文本换行
换行一个单元格变得更加简单
$excel->wrapText('B5');
注意:如果在 wrapText()
后设置样式数组而没有在对齐中定义 wrapText,则换行文本可能会被覆盖。
- 合并和取消合并单元格
尽管在 PHPSpreadsheet 中合并和取消合并单元格很容易,但我们使它更加简单。
$excel->mergeCells('A1:B1');
$excel->unmergeCells('A1:B1');
- 设置列宽
您是否曾厌倦于仅为了设置列宽而编写$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(12);
?这里是如何让 ExcelCreator 为您简化这一过程
$excel->setColumnWidth('D', 12);
// or
$excel->setColumnWidth('D'); // will create auto size
或者,如果您想设置一些具有相同大小的列
$columns = ['A', 'B', 'C'];
$excel->setMultipleColumnsWidth($columns, 12);
or
$excel->setMultipleColumnsWidth($columns); // will create auto size for those columns
或者,如果您想设置默认列宽
$excel->setDefaultColumnWidth(12);
- 设置行高
设置行高与设置列宽非常相似
$excel->setRowHeight('5', 20);
或者,如果您想设置一些具有相同高度的行
$excel->setMultipleRowsHeight('1-5', 20);
但现在 setMultipleRowsHeight()
支持更多的多行
$excel->setMultipleRowsHeight(['1' => 40, '2' => 30 '3-6' => 20]);
或者,如果您想设置默认行高
$excel->setDefaultRowHeight(20);
- 设置默认字体
设置默认字体就像这样简单
$excel->setDefaultFont('Arial', 12)