PHPExcel:读取.xlsx文件,对列'y'的类似值的列'x'求和

问题描述 投票:0回答:1

我坚持这个问题,让我解释一下。我有一个包含3列的Excel工作表:

y       x       z
10      5       0
10      5       4.25
10      5       0
30      2       0
30      2       1.85
30      2       0

如何为col.y的类似值添加col.x的值?

期望的结果是:

y=10, x=15
y=30, x=6

是否有可能使用PHPExcel实现这一点(如果没有,那么最好的方法是什么)?

我尝试了这个但它返回的关联数组:

$objPHPExcel = PHPExcel_IOFactory::load($file_name);
$array = $objPHPExcel->getActiveSheet();
$highestRow = $array->getHighestRow();

$data = $array->rangeToArray("A2:C$highestRow");

$ data返回关联数组,但这不是我想要的。

任何帮助是极大的赞赏。

php excel phpexcel-1.8.0
1个回答
2
投票

您需要遍历数组数据并手动汇总项目

$objPHPExcel = PHPExcel_IOFactory::load($file_name);
$array = $objPHPExcel->getActiveSheet();
$highestRow = $array->getHighestRow();

$data = $array->rangeToArray("A2:C$highestRow");

$sumData = [];
foreach ($data as $row){
    $key = $row[0];
    if(!isset($sumData[$key])){
        $sumData[$key] = [0, 0];
    }
    $sumData[$key][0] += $row[1];
    $sumData[$key][1] += $row[2];
}

print_r($sumData);

结果:

Array
(
    [10] => Array
        (
            [0] => 15
            [1] => 4.25
        )

    [30] => Array
        (
            [0] => 6
            [1] => 1.85
        )

)
© www.soinside.com 2019 - 2024. All rights reserved.