PHPスプレッドシートでテーブルの全境界線を設定する方法


  1. テーブルの全境界線を設定する方法:
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
// テーブルが存在するワークシートを取得
$worksheet = $spreadsheet->getActiveSheet();
// テーブルの範囲を指定
$tableRange = 'A1:D4';
// テーブルの全セルに境界線を設定
$styleArray = [
    'borders' => [
        'allBorders' => [
            'borderStyle' => Border::BORDER_THIN,
            'color' => ['rgb' => '000000'],
        ],
    ],
];
$worksheet->getStyle($tableRange)->applyFromArray($styleArray);

上記の例では、$spreadsheet はスプレッドシートオブジェクトを表しており、$tableRange でテーブルの範囲を指定します。$styleArray には境界線のスタイルと色が定義されています。applyFromArray() メソッドを使用して、スタイルをテーブルの範囲に適用します。

  1. 別の方法として、セル範囲をループして境界線を設定する方法もあります:
// テーブルの範囲を指定
$tableRange = 'A1:D4';
// テーブルの全セルに境界線を設定
$borderStyle = Border::BORDER_THIN;
$borderColor = '000000';
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
for ($row = 1; $row <= $highestRow; $row++) {
    for ($column = 'A'; $column <= $highestColumn; $column++) {
        $cell = $column . $row;
        $worksheet->getStyle($cell)->getBorders()->getAllBorders()->setBorderStyle($borderStyle);
        $worksheet->getStyle($cell)->getBorders()->getAllBorders()->getColor()->setRGB($borderColor);
    }
}

上記の例では、$highestRow$highestColumn を使用して、テーブルの最大行と最大列を取得しています。そして、セル範囲をループして、各セルに境界線のスタイルと色を設定しています。

これらの方法を使用すると、PHPスプレッドシートでテーブルの全境界線を設定することができます。お好みの方法を選んで使用してください。