如何在php电子表格解析器库中通过列名获取值?

iklwldmw  于 2024-01-05  发布在  PHP
关注(0)|答案(4)|浏览(179)

我正在使用akeneo-labs spreadsheet-parser库从xlsx文件中提取数据。

  1. use Akeneo\Component\SpreadsheetParser\SpreadsheetParser;
  2. $workbook = SpreadsheetParser::open('myfile.xlsx');
  3. $myWorksheetIndex = $workbook->getWorksheetIndex('myworksheet');
  4. foreach ($workbook->createRowIterator($myWorksheetIndex) as $rowIndex => $values) {
  5. var_dump($rowIndex, $values);
  6. }

字符串
实际上,你可以通过循环中的列索引来获取值,有没有可能通过列名来获取值?

m528fe3b

m528fe3b1#

也许使用另一个软件包作为建议修复您的问题.也可以使用array_columnhttps://www.php.net/manual/en/function.array-column.php

wmomyfyw

wmomyfyw2#

也许你可以通过使用PHP默认函数fgetcsv()在电子表格CSV文件中做到这一点,你可以从这里开始概述:https://www.php.net/manual/en/function.fgetcsv fgetcsv -从文件指针获取行并解析CSV字段
首先,保存为CSV类型的Xls文件,然后您可以通过列名从CSV文件中获取值。

tsm1rwdh

tsm1rwdh3#

你可以试试这个

  1. use Akeneo\Component\SpreadsheetParser\SpreadsheetParser;
  2. $workbook = SpreadsheetParser::open('myfile.xlsx');
  3. $myWorksheetIndex = $workbook->getWorksheetIndex('myworksheet');
  4. // all columns
  5. $columns = [];
  6. foreach ($workbook->createRowIterator($myWorksheetIndex) as $rowIndex => $values) {
  7. if ($rowIndex == 1) {
  8. $columns = $values;
  9. } else {
  10. $datum = array_combine($columns, $values);
  11. // get value by column name
  12. var_dump($datum['name']);
  13. }
  14. }

字符串

展开查看全部
yv5phkfx

yv5phkfx4#

使用XLSXReader lib。
简单地包含并使用下面的代码。

  1. require('./XLSXReader.php');
  2. $xlsx = new XLSXReader($targetPath);
  3. $sheetNames = $xlsx->getSheetNames();
  4. foreach($sheetNames as $sheetName) {
  5. $sheet = $xlsx->getSheet($sheetName);
  6. foreach($sheet->getData() as $row) {
  7. echo "<pre>"; print_r($row);
  8. }
  9. }

字符串

相关问题