在 PHP 中将 XLSX 文件转换为数组

在当今世界,处理 Excel 文件是开发人员的一项常见任务。XLSX 文件是现代 Excel 格式,通常用于存储结构化数据。PHP 作为一种多功能脚本语言,提供了多种处理 XLSX 文件并将其内容转换为数组的方法,使数据操作变得轻而易举。本博客探讨了使用PHP将 XLSX 文件转换为数组的几种方法。

1.使用PhpSpreadsheet库

PhpSpreadsheet 是 PHPExcel 的后继者,是一个广泛使用的 PHP 中 Excel 文件操作库。它提供了用于读取和写入 XLSX 文件的强大功能集。要开始使用此方法,请按照下列步骤操作:

安装:

使用 Composer 安装 PhpSpreadsheet。

composer require phpoffice/phpspreadsheet

 

示例代码:

<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;

$spreadsheet = IOFactory::load('example.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
$data = $worksheet->toArray();
print_r($data);

 

输出:

此代码加载 XLSX 文件,检索活动工作表,并将其内容转换为数组。该print_r函数在屏幕上显示数组。

2.使用Spout库

Spout 是一个轻量级且节省内存的 PHP 库,用于处理电子表格文件。它是处理大型 XLSX文件或需要考虑内存使用情况的绝佳选择。要使用 Spout 进行 XLSX 到数组的转换:

安装:

通过 Composer 安装 Spout。

composer require box/spout

 

示例代码:

<?php
require 'vendor/autoload.php';
use Box\Spout\Reader\ReaderFactory;
use Box\Spout\Common\Type;

$reader = ReaderFactory::create(Type::XLSX);
$reader->open('example.xlsx');
$data = [];

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

$reader->close();
print_r($data);

 

输出:
此代码初始化 Spout 读取器,打开 XLSX 文件,并迭代其工作表和行以填充数组。

3.使用 SimpleXML

对于无需外部库的轻量级方法,请考虑使用 PHP 的 SimpleXML 扩展来解析 XLSX 文件。XLSX 文件本质上是压缩的 XML 文件,因此使此方法可行。以下是如何使用 SimpleXML 将 XLSX 文件转换为数组:

示例代码:

<?php
$xlsxFile = 'example.xlsx';
$zip = new ZipArchive;

if ($zip->open($xlsxFile) === TRUE) {
$sheetXML = $zip->getFromName('xl/worksheets/sheet1.xml');
$xml = simplexml_load_string($sheetXML);
$json = json_encode($xml);
$data = json_decode($json, true);
print_r($data);
$zip->close();
} else {
echo 'Error opening the XLSX file.';
}

输出:

此代码将 XLSX 文件作为 ZIP 存档打开,提取第一个工作表的 XML 内容,将其转换为 SimpleXML 对象,然后转换为数组以进行进一步处理。

这些只是可用于在 PHP 中将 XLSX 文件转换为数组的几种方法。每种方法都有自己的优点和缺点,具体取决于文件大小、内存使用情况和外部依赖性等因素。

THE END
分享
二维码
海报
在 PHP 中将 XLSX 文件转换为数组
在当今世界,处理 Excel 文件是开发人员的一项常见任务。XLSX 文件是现代 Excel 格式,通常用于存储结构化数据。
<<上一篇
下一篇>>