imtigger/oneexcel

PHP Excel 读写抽象层,支持 PhpSpreadSheet、LibXL、Spout 和 PHP fputcsv

v0.7.3 2019-05-07 13:42 UTC

This package is auto-updated.

Last update: 2024-09-08 01:42:37 UTC


README

Build Status Latest Stable Version Latest Unstable Version Total Downloads License

PHP Excel 读写抽象层,支持 PhpSpreadSheetLibXLSpout 和 PHP fputcsv/fgetcsv

旨在简化 Excel 库之间的服务器兼容性问题以及大型文件中的性能问题。

非常适合格式简单但文件巨大的电子表格,如报表。

安装

要求

  • PHP >= 5.6.4
  • php_zipphp_xmlreaderphp_simplexml 已启用
  • (推荐) 已安装 LibXL 且 php_excel 已启用

Composer

OneExcel 只能通过 Composer 安装。

运行以下命令

$ composer require imtigger/oneexcel

写入器

基本用法

$excel = OneExcelWriterFactory::create()
        ->toFile('excel.xlsx')
        ->make();
        
$excel->writeCell(1, 0, 'Hello');
$excel->writeCell(2, 1, 'World');
$excel->writeCell(3, 2, 3.141592653, ColumnType::NUMERIC);
$excel->writeRow(4, ['One', 'Excel']);
$excel->writeCell(4, 2, 'Test');

$excel->output();
```Selection](driver.md)

### Advanced Usage

```php
$excel = OneExcelWriterFactory::create()
        ->fromFile('template.xlsx', Format::XLSX)
        ->toStream('excel.csv', Format::CSV)
        ->withDriver(Driver::SPOUT)
        ->make();
        
$excel->writeCell(1, 0, 'Hello');
$excel->writeCell(2, 1, 'World');
$excel->writeCell(3, 2, 3.141592653, ColumnType::NUMERIC);
$excel->writeRow(4, ['One', 'Excel']);
$excel->writeCell(4, 2, 'Test');

$excel->output();

读取器

(版本 0.6+)

$excel = OneExcelReaderFactory::create()
        ->fromFile('excel.xlsx')
        // ->withDriver(Driver::SPOUT)
        ->make();
        
foreach ($excel->row() as $row) {
    //
}

$excel->close();

文档

自动驱动选择

已知问题

  • Spout 读取器驱动将空行输出为单列(上游问题?)
  • Spout 不支持随机读写行(上游限制,不会修复)
  • Spout 不支持公式(上游限制,不会修复)
  • fputcsv 驱动忽略所有 ColumnType::*(文件类型限制,不会修复)