将 XLSX 文件导入 PHP 数组

新手上路,请多包涵

是否可以将 XLSX 文件的每一行导入到 PHP 数组中的一行?

原文由 ddfgdfdfgdfgdfgfdgfdgdg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 432
1 个回答

您可以使用此处提供的 PHPExcel: https ://phpexcel.codeplex.com/releases/view/119187

这是我用来读取 xlsxlsx 到数组的内容:

 require_once('/path/to/PHPExcel.php');

$filename = "example.xlsx";
$type = PHPExcel_IOFactory::identify($filename);
$objReader = PHPExcel_IOFactory::createReader($type);
$objPHPExcel = $objReader->load($filename);

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
    $worksheets[$worksheet->getTitle()] = $worksheet->toArray();
}

print_r($worksheets);

更新 / 2022-02-13:

PhpSpreadsheet 已经面世数年,并取代了 PHPExcel。以下代码与上面的代码大致相同,但有一些小的改进:

  1. 将代码转换为函数或方法。
  2. 自动检测文件类型。
  3. 添加了指定如何处理空值、格式和公式的功能。
  4. 最重要的是,调用析构函数并清除内存。如果没有这最后一步,我在加载大文件后总是内存不足。 “` /**
    • Create a multidimensional array of worksheets from a filename. *
    • @param mixed $nullValue Value returned in the array entry if a cell doesn’t exist
    • @param bool $calculateFormulas Should formulas be calculated?
    • @param bool $formatData Should formatting be applied to cell values? *
    • @return array */ function spreadsheet_to_array(\(nullValue = null, \)calculateFormulas = true, \(formatData = false) { \)results = []; \(spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load(\)file); foreach (\(spreadsheet->getWorksheetIterator() as \)worksheet) { \(results[\)worksheet->getTitle()] = \(worksheet->toArray(\)nullValue, \(calculateFormulas, \)formatData); } // save memory \(spreadsheet->__destruct(); \)spreadsheet = NULL; unset(\(spreadsheet); return \)results; }

”`

原文由 Eaten by a Grue 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏