adnzaki/excel-creator

PHPOffice电子表格简化器

1.0.2 2023-05-26 07:41 UTC

This package is auto-updated.

Last update: 2024-09-26 10:29:50 UTC


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 支持的样式有 AlignmentBorderColorFillFont

  • 用数据填充单元格
    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)