Полное руководство по объединению ячеек в PhpOffice\PhpSpreadsheet

В этой статье мы рассмотрим различные методы объединения ячеек с использованием библиотеки PhpOffice\PhpSpreadsheet, ранее известной как PhpExcel. Объединение ячеек является распространенным требованием при работе с электронными таблицами, поскольку оно позволяет объединить несколько ячеек в одну ячейку большего размера. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять и реализовать слияние ячеек в ваших приложениях PHP.

Метод 1: использование метода mergeCells()
Метод mergeCells() — это простой способ объединить ячейки в PhpSpreadsheet. Он принимает диапазон ячеек в качестве входных данных и объединяет их в одну ячейку.

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->mergeCells('A1:C3');
$writer = new Xlsx($spreadsheet);
$writer->save('merged_cells.xlsx');

Метод 2: объединение ячеек с помощью методов mergeAcross() и mergeCellsByColumnAndRow()
PhpSpreadsheet предоставляет два дополнительных метода для объединения ячеек: mergeAcross() и mergeCellsByColumnAndRow(). Метод mergeAcross() объединяет ячейки по горизонтали, а метод mergeCellsByColumnAndRow() объединяет ячейки на основе индексов столбцов и строк.

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->mergeAcross('A1:C1');
$worksheet->mergeCellsByColumnAndRow(1, 2, 3, 2);
$writer = new Xlsx($spreadsheet);
$writer->save('merged_cells.xlsx');

Метод 3: объединение ячеек с помощью стиля
Вы также можете применить стиль к объединенным ячейкам с помощью PhpSpreadsheet. Это позволяет вам настроить внешний вид объединенной ячейки, например размер шрифта, цвет фона и границы. Вот пример, демонстрирующий объединение ячеек со стилем:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->mergeCells('A1:C3');
$worksheet->getStyle('A1:C3')
    ->getAlignment()
    ->setHorizontal(Alignment::HORIZONTAL_CENTER)
    ->setVertical(Alignment::VERTICAL_CENTER);
$worksheet->getStyle('A1:C3')
    ->getFill()
    ->setFillType(Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB('FFA0A0A0');
$worksheet->getStyle('A1:C3')
    ->getBorders()
    ->getAllBorders()
    ->setBorderStyle(Border::BORDER_THIN);
$writer = new Xlsx($spreadsheet);
$writer->save('styled_merged_cells.xlsx');

В этой статье мы рассмотрели несколько методов объединения ячеек в PhpOffice\PhpSpreadsheet. Мы рассмотрели базовый метод mergeCells(), а также методы mergeAcross() и mergeCellsByColumnAndRow() для более конкретных требований к слиянию. Мы также продемонстрировали, как применить стиль к объединенным ячейкам с помощью PhpSpreadsheet. Используя эти методы и примеры, вы можете эффективно объединять ячейки и настраивать их внешний вид в своих приложениях PHP.