当前位置:首页>php>PHP高效、轻量级表格数据处理库 OpenSpout 如何安装与使用

PHP高效、轻量级表格数据处理库 OpenSpout 如何安装与使用

  • 2026-09-10 02:42:01
PHP高效、轻量级表格数据处理库 OpenSpout 如何安装与使用

商务合作加微信:2230304070 

学习与交流:PHP技术交流微信群 

JetBrains Ai 使用Claude4.6 Opus,codex,gemini

https://web.52shizhan.cn/activity/ai-assistant

OpenSpout 是一个高效、轻量级的 PHP 库,用于处理电子表格文件(如 Excel 和 CSV)。它支持读取和写入大型文件,且内存占用低。本文将详细介绍如何安装和使用 OpenSpout。

目录

  1. 安装
  2. 基本使用
  • 读取 Excel 文件
  • 写入 Excel 文件
  • 读取 CSV 文件
  • 写入 CSV 文件
  1. 高级功能
  • 处理大型文件
  • 自定义样式
  1. 参考文档

安装

OpenSpout 可以通过 Composer 安装。确保你已经安装了 Composer,然后在项目根目录下运行以下命令:

composer require openspout/openspout

安装完成后,Composer 会自动加载 OpenSpout。

基本使用

读取 Excel 文件

以下是一个读取 Excel 文件的示例:

require'vendor/autoload.php';useOpenSpout\Reader\Common\Creator\ReaderEntityFactory;// 创建 Reader 对象$reader = ReaderEntityFactory::createXLSXReader();// 打开文件$reader->open('example.xlsx');foreach ($reader->getSheetIterator() as $sheet) {foreach ($sheet->getRowIterator() as $row) {// 处理每一行数据        $cells = $row->getCells();        print_r($cells);    }}// 关闭 Reader$reader->close();

写入 Excel 文件

以下是一个写入 Excel 文件的示例:

require'vendor/autoload.php';useOpenSpout\Writer\Common\Creator\WriterEntityFactory;useOpenSpout\Common\Entity\Row;// 创建 Writer 对象$writer = WriterEntityFactory::createXLSXWriter();// 打开文件$writer->openToFile('output.xlsx');// 创建行数据$rows = [    WriterEntityFactory::createRowFromArray(['Name', 'Age', 'City']),    WriterEntityFactory::createRowFromArray(['John Doe', 30, 'New York']),    WriterEntityFactory::createRowFromArray(['Jane Doe', 25, 'Los Angeles']),];// 写入行数据foreach ($rows as $row) {    $writer->addRow($row);}// 关闭 Writer$writer->close();

读取 CSV 文件

以下是一个读取 CSV 文件的示例:

require'vendor/autoload.php';useOpenSpout\Reader\Common\Creator\ReaderEntityFactory;// 创建 Reader 对象$reader = ReaderEntityFactory::createCSVReader();// 打开文件$reader->open('example.csv');foreach ($reader->getSheetIterator() as $sheet) {foreach ($sheet->getRowIterator() as $row) {// 处理每一行数据        $cells = $row->getCells();        print_r($cells);    }}// 关闭 Reader$reader->close();

写入 CSV 文件

以下是一个写入 CSV 文件的示例:

require'vendor/autoload.php';useOpenSpout\Writer\Common\Creator\WriterEntityFactory;useOpenSpout\Common\Entity\Row;// 创建 Writer 对象$writer = WriterEntityFactory::createCSVWriter();// 打开文件$writer->openToFile('output.csv');// 创建行数据$rows = [    WriterEntityFactory::createRowFromArray(['Name', 'Age', 'City']),    WriterEntityFactory::createRowFromArray(['John Doe', 30, 'New York']),    WriterEntityFactory::createRowFromArray(['Jane Doe', 25, 'Los Angeles']),];// 写入行数据foreach ($rows as $row) {    $writer->addRow($row);}// 关闭 Writer$writer->close();

高级功能

处理大型文件

OpenSpout 通过流式处理支持大型文件,避免内存溢出。以下是一个处理大型文件的示例:

require'vendor/autoload.php';useOpenSpout\Reader\Common\Creator\ReaderEntityFactory;// 创建 Reader 对象$reader = ReaderEntityFactory::createXLSXReader();// 打开文件$reader->open('large_file.xlsx');foreach ($reader->getSheetIterator() as $sheet) {foreach ($sheet->getRowIterator() as $row) {// 处理每一行数据        $cells = $row->getCells();        print_r($cells);    }}// 关闭 Reader$reader->close();

自定义样式

OpenSpout 允许你自定义单元格样式。以下是一个自定义样式的示例:

require'vendor/autoload.php';useOpenSpout\Writer\Common\Creator\WriterEntityFactory;useOpenSpout\Common\Entity\Style\Style;useOpenSpout\Common\Entity\Row;// 创建 Writer 对象$writer = WriterEntityFactory::createXLSXWriter();// 打开文件$writer->openToFile('styled_output.xlsx');// 创建样式$style = (new Style())    ->setFontBold()    ->setFontSize(14)    ->setFontColor(Color::BLUE)    ->setBackgroundColor(Color::YELLOW);// 创建行数据$rows = [    WriterEntityFactory::createRowFromArray(['Name', 'Age', 'City'], $style),    WriterEntityFactory::createRowFromArray(['John Doe', 30, 'New York']),    WriterEntityFactory::createRowFromArray(['Jane Doe', 25, 'Los Angeles']),];// 写入行数据foreach ($rows as $row) {    $writer->addRow($row);}// 关闭 Writer$writer->close();

参考文档

  • OpenSpout 官方文档
  • GitHub 仓库

通过本文,你应该已经掌握了 OpenSpout 的基本安装和使用方法。希望这对你处理电子表格文件有所帮助!

参考链接:
以上就是本篇分钟的全部内容,希望各位程序员们努力提升个人技术。最后,小编温馨提示:每天阅读5分钟,每天学习一点点,每天进步一点点。

最新文章

随机文章