提问人:Zeta 提问时间:2/15/2017 最后编辑:Prashant PokhriyalZeta 更新时间:9/28/2021 访问量:2402
如何在php spreadsheet-parser库中按列名获取值?
How to get value by column name in php spreadsheet-parser library?
问:
我正在使用 akeneo-labs 电子表格解析器库从 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);
}
实际上,您可以在循环中通过列索引获取值,是否可以按列名获取值?
答:
0赞
Moaaz
6/12/2019
#1
也许按照建议使用另一个包可以解决您的问题。
您也可以使用 https://www.php.net/manual/en/function.array-column.phparray_column
0赞
Ahm Harunur Rashid
6/22/2021
#2
也许你可以通过使用 PHP 默认函数 fgetcsv() 在电子表格 CSV 文件中做到这一点,你可以从这里抛出一个概述: https://www.php.net/manual/en/function.fgetcsv fgetcsv — 从文件指针获取行并解析 CSV 字段
首先,以 CSV 类型另存为 Xls 文件,然后您可以按列名从该 CSV 文件中获取值。
0赞
Plantour
9/28/2021
#3
你可以试试这个。
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']);
}
}
评论