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

iklwldmw  于 5个月前  发布在  PHP
关注(0)|答案(4)|浏览(53)

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

use Akeneo\Component\SpreadsheetParser\SpreadsheetParser;

$workbook = SpreadsheetParser::open('myfile.xlsx');

$myWorksheetIndex = $workbook->getWorksheetIndex('myworksheet');

foreach ($workbook->createRowIterator($myWorksheetIndex) as $rowIndex => $values) {
    var_dump($rowIndex, $values);
}

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

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#

你可以试试这个

use Akeneo\Component\SpreadsheetParser\SpreadsheetParser;

$workbook = SpreadsheetParser::open('myfile.xlsx');

$myWorksheetIndex = $workbook->getWorksheetIndex('myworksheet');
// all columns
$columns = [];

foreach ($workbook->createRowIterator($myWorksheetIndex) as $rowIndex => $values) {
    if ($rowIndex == 1) {
        $columns = $values;
    } else {
        $datum = array_combine($columns, $values);
        // get value by column name
        var_dump($datum['name']);
    }
}

字符串

yv5phkfx

yv5phkfx4#

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

require('./XLSXReader.php');
$xlsx = new XLSXReader($targetPath);
$sheetNames = $xlsx->getSheetNames();
foreach($sheetNames as $sheetName) {
    $sheet = $xlsx->getSheet($sheetName);
    foreach($sheet->getData() as $row) {
        echo "<pre>"; print_r($row);
    }
}

字符串

相关问题