web-dev-qa-db-ja.com

PHPExcelはセルの境界線の色を設定します

セルの境界線の色を設定する方法は?このコードを使用しましたが、機能していません。

_$objPHPExcel->getActiveSheet()
                ->getStyle('A1')
                ->getBorders()
                ->getAllBorders()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)
                ->getColor()
                ->setRGB('DDDDDD');
_

applyFromArray()は正常に動作することを知っています。しかし、私はそれを使いたくありません。

10
Muntashir Akon

少し遅れましたが、記録のために、この構文がうまく機能することがわかりました。

$ActiveSheet->getStyle("A1:Z1")->applyFromArray(
    array(
        'borders' => array(
            'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_THIN,
                'color' => array('rgb' => 'DDDDDD')
            )
        )
    )
);

また、ここでスタイルと属性の完全なリストを見つけました: http://www.bainweb.com/2012/01/phpexcel-style-reference-complete-list.html

25
Gjermund Dahl

境界線を作成しながら、セルの境界線に色を適用できます。

スタイルを定義する:

$border_style= array('borders' => array('right' => array('style' => 
PHPExcel_Style_Border::BORDER_THICK,'color' => array('argb' => '766f6e'),)));

スタイルを適用します。

$sheet = $objPHPExcel->getActiveSheet();
$sheet->getStyle("A2:A40")->applyFromArray($border_style);

PhpExcelのドキュメントを参照してください こちら

9
ManiMuthuPandi

applyFromArray()なしで境界線を設定するには、次のようにします。

    $objPHPExcel->getActiveSheet()
                ->getStyle('A1')
                ->getBorders()
                ->getBottom()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

    $objPHPExcel->getActiveSheet()
                ->getStyle('A1')
                -> getBorders()
                ->getLeft()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

    $objPHPExcel->getActiveSheet()
                ->getStyle('A1')
                ->getBorders()
                ->getRight()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

    $objPHPExcel->getActiveSheet()
                ->getStyle('A1')
                ->getBorders()
                ->getBottom()
                ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);


ボーダースタイルリストは

BORDER_NONE - 'none'
BORDER_DASHDOT - 'dashDot'
BORDER_DASHDOTDOT - 'dashDotDot'
BORDER_DASHED - 'dashed'
BORDER_DOTTED - 'dotted'
BORDER_DOUBLE - 'double'
BORDER_HAIR - 'hair'
BORDER_MEDIUM - 'medium'
BORDER_MEDIUMDASHDOT - 'mediumDashDot'
BORDER_MEDIUMDASHDOTDOT - 'mediumDashDotDot'
BORDER_MEDIUMDASHED - 'mediumDashed'
BORDER_SLANTDASHDOT - 'slantDashDot'
BORDER_THICK - 'thick'
BORDER_THIN - 'thin'

詳細 PHPExcel

4
Nishal K.R

ワークブック全体(すべてのワークシート)のデフォルトスタイルは、次のように設定できます。

_$objPHPExcel->getDefaultStyle()
    ->getBorders()
    ->getTop()
        ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getDefaultStyle()
    ->getBorders()
    ->getBottom()
        ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getDefaultStyle()
    ->getBorders()
    ->getLeft()
        ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getDefaultStyle()
    ->getBorders()
    ->getRight()
        ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

_

applyFromArray()を使用して設定することもできます

_$styleArray = array(
      'borders' => array(
          'allborders' => array(
              'style' => PHPExcel_Style_Border::BORDER_THIN
          )
      )
  );
$objPHPExcel->getDefaultStyle()->applyFromArray($styleArray);
_
3
sachin kuruvila

Webサイトがダウンしているため、PHPExcelスタイルの完全なリストを以下に示します。

/ * PHPExcel Object * /

/* Get the default Style object */
(PHPExcel_Style) $style = ((PHPExcel) $Excel)->getDefaultStyle()

/ * PHPExcel_Cellオブジェクト* /

/* Get the Style object for a Cell */
(PHPExcel_Style) $style = ((PHPExcel) $Excel)->getStyle('A1')

/ *スタイル* /

/* Apply new Style from array */
$style->applyFromArray(
    array(
        'alignment' => array(
            'horizontal' =>
                PHPExcel_Style_Alignment::HORIZONTAL_GENERAL           = 'general'
                PHPExcel_Style_Alignment::HORIZONTAL_LEFT              = 'left'
                PHPExcel_Style_Alignment::HORIZONTAL_RIGHT             = 'right'
                PHPExcel_Style_Alignment::HORIZONTAL_CENTER            = 'center'
                PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS = 'centerContinuous'
                PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY           = 'justify'
            'vertical' =>
                PHPExcel_Style_Alignment::VERTICAL_BOTTOM  = 'bottom'
                PHPExcel_Style_Alignment::VERTICAL_TOP     = 'top'
                PHPExcel_Style_Alignment::VERTICAL_CENTER  = 'center'
                PHPExcel_Style_Alignment::VERTICAL_JUSTIFY = 'justify'
            'rotation' => (int)
            'wrap' => (boolean)
            'shrinkToFit' => (boolean)
            'indent' => (int)
        )
        'borders' => array(
            'allborders' => array(
                'style' => 
                    PHPExcel_Style_Border::BORDER_NONE               = 'none';
                    PHPExcel_Style_Border::BORDER_DASHDOT            = 'dashDot';
                    PHPExcel_Style_Border::BORDER_DASHDOTDOT         = 'dashDotDot';
                    PHPExcel_Style_Border::BORDER_DASHED             = 'dashed';
                    PHPExcel_Style_Border::BORDER_DOTTED             = 'dotted';
                    PHPExcel_Style_Border::BORDER_DOUBLE             = 'double';
                    PHPExcel_Style_Border::BORDER_HAIR               = 'hair';
                    PHPExcel_Style_Border::BORDER_MEDIUM             = 'medium';
                    PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT      = 'mediumDashDot';
                    PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT   = 'mediumDashDotDot';
                    PHPExcel_Style_Border::BORDER_MEDIUMDASHED       = 'mediumDashed';
                    PHPExcel_Style_Border::BORDER_SLANTDASHDOT       = 'slantDashDot';
                    PHPExcel_Style_Border::BORDER_THICK              = 'thick';
                    PHPExcel_Style_Border::BORDER_THIN               = 'thin';
                'color' => array(
                    'rgb' =>
                        PHPExcel_Style_Color::COLOR_BLACK            = 'FF000000';
                        PHPExcel_Style_Color::COLOR_WHITE            = 'FFFFFFFF';
                        PHPExcel_Style_Color::COLOR_RED              = 'FFFF0000';
                        PHPExcel_Style_Color::COLOR_DARKRED          = 'FF800000';
                        PHPExcel_Style_Color::COLOR_BLUE             = 'FF0000FF';
                        PHPExcel_Style_Color::COLOR_DARKBLUE         = 'FF000080';
                        PHPExcel_Style_Color::COLOR_GREEN            = 'FF00FF00';
                        PHPExcel_Style_Color::COLOR_DARKGREEN        = 'FF008000';
                        PHPExcel_Style_Color::COLOR_YELLOW           = 'FFFFFF00';
                        PHPExcel_Style_Color::COLOR_DARKYELLOW       = 'FF808000';
                )

            )
            'left' => // See 'allborders'
            'top' => // See 'allborders'
            'right' => // See 'allborders'
            'bottom' => // See 'allborders'
            'diagonal' =>
            'diagonaldirection' => 
        )
        'fill' => array(
            'type' =>
                PHPExcel_Style_Fill::FILL_NONE                         = 'none';
                PHPExcel_Style_Fill::FILL_SOLID                        = 'solid';
                PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR              = 'linear';
                PHPExcel_Style_Fill::FILL_GRADIENT_PATH                = 'path';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN             = 'darkDown';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY             = 'darkGray';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID             = 'darkGrid';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL       = 'darkHorizontal';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS          = 'darkTrellis';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKUP               = 'darkUp';
                PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL         = 'darkVertical';
                PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625             = 'gray0625';
                PHPExcel_Style_Fill::FILL_PATTERN_GRAY125              = 'gray125';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN            = 'lightDown';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY            = 'lightGray';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID            = 'lightGrid';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL      = 'lightHorizontal';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS         = 'lightTrellis';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP              = 'lightUp';
                PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL        = 'lightVertical';
                PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY           = 'mediumGray';
            'rotation' => (double)
            'startcolor' => // See 'borders' => 'allborders' => 'color'
            'endcolor' => // See 'borders' => 'allborders' => 'color'
            'color' => // See 'borders' => 'allborders' => 'color'
        ) 
        'font' => array(
            'name' =>
                'Arial'
                'Calibri'
                // etc.
            'bold' => (boolean)
            'italic' => (boolean)
            'superScript' => (boolean)
            'subScript' => (boolean)
            'underline' => (boolean)
            'strike' => (boolean)
            'size' => (float)
            'color' => // See 'borders' => 'allborders' => 'color'
        )
        'numberformat' =>
        'protection' =>
    )
)
0
SonnySVK