Excel/CSV 导入导出库,支持大文件,样式设置

前言

  • 项目上使用过maatwebsite/Excel, mk-j/php_xlsxwriter, box/spout这三个库,简单说下使用体验
  • maatwebsite/Excel 优点功能非常强大,不足的是占用内存太多,对于导出大文件无法满足需求
  • mk-j/php_xlsxwriter 优点支持大文件写入,常规样式设置,不足的是仅支持excel导出,不支持导入,也不支持csv的导入/导出
  • box/spout 优点是支持大文件,支持excel/csv导入/导出,不足的是不支持单元格合并

环境要求

  • PHP version 7.1 or higher
  • PHP extension php_zip enabled
  • PHP extension php_xmlreader enabledR

##安装

导出

include "./vendor/autoload.php";

$writer = \Rocky114\Excel\Writer\WriterFactory::createXLSXWriter();
$writer->setTempFolder('.');

$writer->addNewSheet('sheet1');

$type = ['A' => 'string', 'B' => '#,##0'];
$writer->addHeader(['name', 'id'], $type)
->addRow(['xinzhu', 1234565])>addRow(['rocky', 21])->save();

导入

include "./vendor/autoload.php";

$reader = \Rocky114\Spreadsheet\ReaderFactory::createReaderFromFile('./test.xlsx');

$data = [];
foreach ($reader->getSheetIterator() as $sheet) {
     foreach ($sheet->getRowIterator() as $row) { 
        $data[] = $row; 
     }
}

// or
$data = $reader->getSheet()->load();
本作品采用《CC 协议》,转载必须注明作者和本文链接
馨竹
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!