query($sql); // 合約號 客戶 營業員 合約含稅總金額 合約未稅總金額 [作番號 含稅金額 未稅金額 ] foreach ($query as $row) { if (!isset($array[$row['BillNo']])) { $array[$row['BillNo']] = [$row['BillNo'], $row['BizPartnerName'], $row['PersonName'], 0, 0]; $array[$row['BillNo']][$row['CU_MaterialId']] = [$row['CU_MaterialId'], $row['SPrice'], $row['OAmount']]; } else { if (isset($array[$row['BillNo']][$row['CU_MaterialId']])) { $array[$row['BillNo']][$row['CU_MaterialId']][1] += $row['SPrice']; $array[$row['BillNo']][$row['CU_MaterialId']][2] += $row['OAmount']; } else { $array[$row['BillNo']][$row['CU_MaterialId']] = [$row['CU_MaterialId'], $row['SPrice'], $row['OAmount']]; } } $array[$row['BillNo']][3] += $row['SPrice']; $array[$row['BillNo']][4] += $row['OAmount']; } $print = array(); foreach ($array as $key => $ray) { $print[$ray[0]] = [$ray[0], $ray[1], $ray[2], $ray[3], $ray[4]]; foreach ($ray as $key2 => $ray2) { if ($key2 !== 0 && $key2 !== 1 && $key2 !== 2 && $key2 !== 3 && $key2 !== 4) { array_push($print[$ray[0]], $ray2[0], $ray2[1], $ray2[2]); } } } $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $colomnHeader = [ '合約號', '客戶', '營業員', '合約含稅總金額', '合約未稅總金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額', '作番號', '含稅金額', '未稅金額' ]; $sheet->fromArray($colomnHeader, NULL, 'A1'); $rowIndex = 2; foreach ($print as $key => $pri) { $sheet->fromArray([$pri], NULL, 'A' . $rowIndex); $column = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CQ', 'CR', 'CS', 'CT', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ' ]; foreach ($column as $col) { $sheet->getColumnDimension($col)->setAutoSize(true); } $rowIndex++; } $writer = new Xlsx($spreadsheet); $excelFileName = 'facility-price.xlsx'; $writer->save($excelFileName); // foreach($array as $ray){ // print_r($ray); // echo "
"; // } $data = json_encode($array); ?>