遍历PhpSpreadsheet中的rangeToArray()

时间:2018-10-17 22:13:50

标签: php excel phpspreadsheet

我有执行计算所需的Excel工作表。 我现在正在使用PHPSpreadsheet进行读写,因为现在不推荐使用PHPExcel。

我遇到的问题是从特定列获取值以进行计算。

浏览完文档后,我发现可以使用rangeToArray()函数来检索值。 我的代码如下:

$inputFiletype = 'Xlsx';
$inputFileName = './helloworld.xlsx';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);

$find_val = $spreadsheet->getActiveSheet()->rangeToArray('K1:K5');

根据文档,这将创建一个数组($ find_vals)。 但是,当我尝试遍历数组以查看值时,会收到“数组到字符串转换”的通知,输出为“ Array”。

如果我使用var_dump,则会得到以下信息:

array(5) { [0]=> array(1) { [0]=> float(1) } [1]=> array(1) { [0]=> float(2) } [2]=> array(1) { [0]=> float(3) } [3]=> array(1) { [0]=> float(4) } [4]=> array(1) { [0]=> float(5) } } 

我尝试了以下循环代码:

for($i=0; $i<=4; $i++) {
    echo (string)$find_val[$i];
}

以及

foreach($find_val as $vals) {
    echo $vals;
}

我还尝试了以下操作,这些操作对结果有一些改变:

for($i=0; $i<=4; $i++) {
    echo (string)$find_val[$i][$i];
}

此输出一个值,并给我其他4次迭代的未定义偏移量错误。

如何使用PhpSpreadsheet API成功地遍历rangeToArray值?

谢谢。

2 个答案:

答案 0 :(得分:0)

类似的答案here

foreach ($find_val as $cell) {
    foreach ($cell as $finalValue) {
        echo $finalValue . "\r\n";
    }
}

答案 1 :(得分:0)

现在刚看到您的帖子。你尝试过吗?
你快到了

foreach($sheetData as $vals) {
    echo $vals[0];
}