Lightweight XLSX Excel Spreadsheet Writer in PHP
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 8 年前 | ||
| 3 年前 | ||
| 12 年前 | ||
| 6 年前 | ||
| 3 年前 | ||
| 11 年前 | ||
| 8 年前 | ||
| 8 年前 | ||
| 3 年前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
PHP_XLSXWriter
这个库的设计目标是轻量级和低内存占用。
它的目的是输出一个与Excel兼容的(Office 2007+)xlsx格式的工作表,只支持基本功能:
- 支持PHP 5.2.1+
- 接受UTF-8编码的输入
- 多个工作表
- 支持货币/日期/数字单元格格式化,简单的公式
- 支持基础单元格样式设置
- 支持写入包含10万行以上的大型电子表格
简单PHP命令行示例:
$data = array(
array('year','month','amount'),
array('2003','1','220'),
array('2003','2','153.5'),
);
$writer = new XLSXWriter();
$writer->writeSheet($data);
$writer->writeToFile('output.xlsx');
简单/高级单元格格式:
$header = array(
'created'=>'date',
'product_id'=>'integer',
'quantity'=>'#,##0',
'amount'=>'price',
'description'=>'string',
'tax'=>'[$$-1009]#,##0.00;[RED]-[$$-1009]#,##0.00',
);
$data = array(
array('2015-01-01',873,1,'44.00','misc','=D2*0.05'),
array('2015-01-12',324,2,'88.00','none','=D3*0.05'),
);
$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', $header );
foreach($data as $row)
$writer->writeSheetRow('Sheet1', $row );
$writer->writeToFile('example.xlsx');
50000行:(1.4秒,0MB内存使用)
include_once("xlsxwriter.class.php");
$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', array('c1'=>'integer','c2'=>'integer','c3'=>'integer','c4'=>'integer') );
for($i=0; $i<50000; $i++)
{
$writer->writeSheetRow('Sheet1', array($i, $i+1, $i+2, $i+3) );
}
$writer->writeToFile('huge.xlsx');
echo '#'.floor((memory_get_peak_usage())/1024/1024)."MB"."\n";
| 行数 | 时间 | 内存 |
|---|---|---|
| 50000 | 1.4秒 | 0MB |
| 100000 | 2.7秒 | 0MB |
| 150000 | 4.1秒 | 0MB |
| 200000 | 5.7秒 | 0MB |
| 250000 | 7.0秒 | 0MB |
简单单元格格式映射到更复杂的单元格格式
| 简单格式 | 格式代码 |
|---|---|
| 字符串 | @ |
| 整数 | 0 |
| 日期 | YYYY-MM-DD |
| 日期时间 | YYYY-MM-DD HH:MM:SS |
| 时间 | HH:MM:SS |
| 价格 | #,##0.00 |
| 美元 | [$$-1009]#,##0.00;[RED]-[$$-1009]#,##0.00 |
| 欧元 | #,##0.00 [€-407];[RED]-#,##0.00 [€-407] |
自版本0.30起,基础单元格样式已可用
| 样式 | 允许值 |
|---|---|
| 字体 | Arial, Times New Roman, Courier New, Comic Sans MS |
| 字体大小 | 8,9,10,11,12... |
| 字体风格 | 加粗, 斜体, 下划线, 删除线 或 多个(例如:'加粗,斜体') |
| 边框 | 左, 右, 上, 下 或 多个(例如:'上,左') |
| 边框样式 | 纤细, 中等, 加粗, dashDot, dashDotDot, dashed, dotted, double, hair, mediumDashDot, mediumDashDotDot, mediumDashed, slantDashDot |
| 边框颜色 | #RRGGBB, 例如:#ff99cc 或 #f9c |
| 颜色 | #RRGGBB, 例如:#ff99cc 或 #f9c |
| 填充 | #RRGGBB, 例如:#eeffee 或 #efe |
| 水平对齐 | 一般, 左, 右, 居中, 两端对齐 |
| 垂直对齐 | 底部, 居中, 分布式 |