自定义网站 Laravel excel 合并相同的单元格

我尝试使用 maatwebsite Laravel excel 2.1 来替换我旧的 phpexcel 脚本。

使用 php excel,我查询我的 bdd 并在里面循环。

每行数据作为他自己的数据+父母数据,因此两行或多行可以具有相同的值。

所以我遍历每个数据并逐行写入值。如果父值与以前相同,我合并单元格。

最后,我合并了所有具有相同值的单元格。

我怎样才能在 laravel-excel 上做这样的事情?

目前我收集了一个数组中的所有数据并使用此代码导出:

        Excel::load('excelrecap.xls', function($excel) use($array) {

        $excel->sheet('Copro', function($sheet) use($array) {

            $sheet->fromArray($array, null, 'A9', false);
            foreach ($sheet as $row) {
                $sheet->setCellValue($row, 'some value');
            }
        });

    })->export('xls');

例如,$array 可以是这样的:

array:2 [
  0 => array:8 [
    "Batiment" => "Unique"
    "N° du lot" => 7
    "Étage" => "1e étage"
    "Fraction" => "Parking 0.35"
    "Surface" => "11.500"
    "Coefficient" => "0.350"
    "Surface pondérée" => "4.025"
    "Quote-part" => "635.961"
  ]
  1 => array:8 [
    "Batiment" => "Unique"
    "N° du lot" => 8
    "Étage" => "1e étage"
    "Fraction" => "Principal"
    "Surface" => "65.850"
    "Coefficient" => "0.903"
    "Surface pondérée" => "59.265"
    "Quote-part" => "9364.039"
  ]
]

所以在这里我想合并“Batiment”和“Etage”列,但它可以是其他列和很多行。

有人知道怎么做吗?

感谢您的帮助。

stack overflow maatwebsite Laravel excel merge same cells
原文答案

答案:

作者头像

我也在寻找这个问题的解决方案。我想合并单元格并将内容(值)放在上面。经过几次搜索,我得到了一些解决方案。但没有检查,因为我使用 Maatawebsite 获取 Excel 文件。

但是任何人都可以尝试。解决方案是基于 PHPExcel 的,当然,它可以在 Maatawebsite 上运行。

Source Link

从A列第1行合并到E列第1行

$objPHPExcel->getActiveSheet()->mergeCells('A1:E1');

// add some text
$objPHPExcel->getActiveSheet()->setCellValue('A1','The quick brown fox.'); 

从A列第1行合并到E列第3行

$objPHPExcel->getActiveSheet()->mergeCells('A1:E3');

// add some text
$objPHPExcel->getActiveSheet()->setCellValue('A1','The quick brown fox.');

我检查了 maatawebsite 文档,它们具有相同的方法 mergeCells。所以我想我会工作。

这个来自 Maatawebste 的解决方案。

$sheet->cells('A1:C1', function($cells) {
    $cells->setBorder('thin', 'thin', 'thin', 'thin');
});
$sheet->mergeCells('A1:C1');