zhaqq / xlsx
PHP 库,用于写入 XLSX 文件
v1.0.0
2019-07-12 07:34 UTC
Requires
- php: >=7.1
- ext-zip: *
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is auto-updated.
Last update: 2024-09-12 20:49:57 UTC
README
- PHP >= 7.1
- 参见 PHP_XLSXWriter
安装
composer require zhaqq/xlsx
CLI 示例
$writer = new Builder(); $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx'; $writer->buildHeader('sheet_name_1', [ 'title' => 'string', 'content' => 'string', 'weight' => 'number', ]); $writer->buildHeader('sheet_name_2', [ 'title' => 'string', 'content' => 'string', 'price' => 'price', ]); foreach (rows(100) as $row) { $writer->writeSheetRow($row[0], $row[1]); } $writer->writeToFile($fileName); function rows($n = 100) { for ($i = 0; $i < $n; $i++) { if ($i % 2) { yield ['sheet_name_1', [ 'title' . $i, 'content' . $i, $i++, ]]; } else { yield ['sheet_name_2', [ 'title' . $i, 'content' . $i, $i++, ]]; } } }
使用函数
- 操作:=A{n}+B{n} 或 =A2+B3
- 类型:数字(价格,浮点3)
try { $writer = new Builder(); $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx'; $writer->buildHeader('sheet_name_1', [ 'title' => 'number', 'content' => 'number', 'weight' => 'number', ]); foreach (rows() as $row) { $writer->writeSheetRow($row[0], $row[1]); } times($start); $writer->writeToFile($fileName); times($start); } catch (\Exception $exception) { var_dump($exception->getMessage()); } function rows($n = 20) { for ($i = 0; $i < $n; $i++) { yield ['sheet_name_1', [ $i, $i, '=A{n}+B{n}', ]]; } }
使用
<?php require __DIR__ . '/vendor/autoload.php'; use Zhaqq\Xlsx\Writer\Builder; date_default_timezone_set('PRC'); try { $writer = new Builder(); $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx'; $writer->buildHeader('sheet_name_1', [ 'title' => 'string', 'content' => 'string', 'weight' => 'number', ]); $writer->buildHeader('sheet_name_2', [ 'title' => 'string', 'content' => 'string', 'price' => 'price', ]); foreach (rows() as $row) { $writer->writeSheetRow($row[0], $row[1]); } $writer->writeToFile($fileName); } catch (\Exception $exception) { var_dump($exception->getMessage()); } function rows($n = 100) { for ($i = 0; $i < $n; $i++) { if ($i % 2) { yield ['sheet_name_1', [ 'title' . $i, 'content' . $i, $i++, ]]; } else { yield ['sheet_name_2', [ 'title' . $i, 'content' . $i, $i++, ]]; } } }
配置
- 单元格格式
更多配置信息 PHP_XLSXWriter