dty98339
dty98339
2018-10-17 22:13

通过PhpSpreadsheet中的rangeToArray()进行迭代

已采纳

I have Excel sheets that I need to perform calculations with. I am using PHPSpreadsheet to read and write, as PHPExcel is now deprecated.

The problem I am experiencing is in getting values from a specific column to perform calculations.

After going through the documentation, I found that I can use the rangeToArray() function to retrieve the values. My code looks like this:

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

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

This, according to the documentation, creates an array ($find_vals). However, when I attempt to loop through the array to view the values, I get an 'Array to string Conversion' notice, with the output of "Array".

If I use var_dump, I get the following:

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) } } 

I have tried the following loop codes:

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

as well as

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

I have also tried the following which changed the result a little:

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

This output one value, and gave me Undefined Offset errors for the other 4 iterations.

How would I be able to successfully iterate through a rangeToArray value using the PhpSpreadsheet API?

Thanks in advance.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • duanjiao7440 duanjiao7440 3年前

    Similar answer here

    foreach ($find_val as $cell) {
        foreach ($cell as $finalValue) {
            echo $finalValue . "
    ";
        }
    }
    
    点赞 评论 复制链接分享