Итак, это мой код php и данные json, я уже экспортировал их в Phpspreadsheet. Но как мне объединить, если значения одинаковы? Например, номер слияния и имя.
PHP:
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'No')->mergeCells('A1:A2');
$sheet->setCellValue('B1', 'Name')->mergeCells('B1:B2');
$sheet->setCellValue('C1', 'Room')->mergeCells('C1:C2');
$sheet->setCellValue('D1', 'Qty')->mergeCells('D1:D2');
$i=3;
$json = file_get_contents('myjson.txt');
$obj = json_decode($json,TRUE);
foreach ($obj as $v) {
$sheet->setCellValue('A' . $i, $v['no']);
$sheet->setCellValue('B' . $i, $v['name']);
$sheet->setCellValue('C' . $i, $v['room']);
$sheet->setCellValue('D' . $i, $v['qty']);
$i++;
}
$styleArray = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
],
];
$i = $i - 1;
$outputFileName="Report .xlsx";
File::delete('C:/' . $outputFileName);
$sheet->getStyle('A1:M'.$i)->applyFromArray($styleArray);
$writer = new Xlsx($spreadsheet);
$writer->save('C:/' . $outputFileName);
Json файл:
[
{
"no": 4,
"name": "Susan",
"room": "1001847.0008105.03",
"qty": "IDR",
},
{
"no": 4,
"name": "Susan",
"room": "1001847.0008105.03",
"qty": "IDR",
},
{
"no": 4,
"name": "Susan",
"room": "1001847.0008105.03",
"qty": "IDR",
},
{
"no": 4,
"name": "Susan",
"room": "1001847.0008105.03",
"qty": "IDR",
},
{
"no": 4,
"name": "Susan",
"room": "1001847.0008105.03",
"qty": "IDR",
},
{
"no": 5,
"name": "Mira",
"room": "1112950.0008140.03",
"qty": "IDR",
},
{
"no": 5,
"name": "Mira",
"room": "1112950.0008140.03",
"qty": "IDR",
}
]
Я прочитал это: Как объединить строку с тем же значением в PHPExcel, зациклив массив с if logi c, но не могу понять это с моим случаем.