PHPExcel: чтение файла.xlsx, сумма значений столбца 'x' для аналогичного значения столбца 'y'
Я застрял на этой проблеме, позвольте мне объяснить. У меня есть лист Excel, который имеет 3 столбца, например:
y x z
10 5 0
10 5 4.25
10 5 0
30 2 0
30 2 1.85
30 2 0
Как я могу добавить значения col.x для аналогичных значений col.y?
Желаемый результат:
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 возвращает ассоциативный массив, но это не то, что я хочу.
Любая помощь с благодарностью.
1 ответ
Решение
Вам нужно пройти массив данных и суммировать элементы вручную
$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 ) )