Итерация через rangeToArray () в PhpSpreadsheet - PullRequest
0 голосов
/ 18 октября 2018

У меня есть листы Excel, с которыми мне нужно выполнять расчеты.Я использую PHPSpreadsheet для чтения и записи, поскольку PHPExcel теперь устарел.

Проблема, с которой я сталкиваюсь, заключается в получении значений из определенного столбца для выполнения вычислений.

После изучения документации,Я обнаружил, что могу использовать функцию rangeToArray () для получения значений.Мой код выглядит так:

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

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

Это, согласно документации, создает массив ($ find_vals).Однако, когда я пытаюсь перебрать массив для просмотра значений, я получаю уведомление «Преобразование массива в строку» с выводом «Массив».

Если я использую 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 итераций.

Как я могу успешно выполнить итерацию по значению rangeToArray с помощью API PhpSpreadsheet?

Заранее спасибо.

1 Ответ

0 голосов
/ 18 октября 2018

Аналогичный ответ здесь

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