在 PHPExcel 中设置字体颜色、字体和字体大小

2022-08-30 09:49:58

我在PHPExcel工作。我是初学者。当我使用以下代码及其正常工作时。

$phpExcel = new PHPExcel();

$phpExcel->getActiveSheet()->getStyle("A1")->getFont()->setBold(true)
                                ->setName('Verdana')
                                ->setSize(10)
                                ->getColor()->setRGB('6F6F6F');

但是当我使用以下代码并且没有得到预期的结果时,如上所述。

$phpFont = new PHPExcel_Style_Font();
$phpFont->setBold(true);
$phpFont->setName('Verdana');
$phpFont->setSize(15);

$phpColor = new PHPExcel_Style_Color();
$phpColor->setRGB('FF0000');  

$phpExcel->getActiveSheet()->getStyle('A1')->setFont( $phpFont );
$phpExcel->getActiveSheet()->getStyle('A1')->getFont()->setColor( $phpColor );

请帮助我在上面的代码中我做错了什么。

提前感谢您!


答案 1

我建议您开始阅读文档(4.6.18。设置单元格格式)。在应用大量格式时,最好使用 根据文档,当您设置许多样式属性时,此方法也被认为更快。有一个附件,您可以在其中找到此功能的所有可能键。applyFromArray()

这将为您工作:

$phpExcel = new PHPExcel();

$styleArray = array(
    'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => 'FF0000'),
        'size'  => 15,
        'name'  => 'Verdana'
    ));

$phpExcel->getActiveSheet()->getCell('A1')->setValue('Some text');
$phpExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray);

要应用字体样式来完成 Excel 文档:

 $styleArray = array(
   'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => 'FF0000'),
        'size'  => 15,
        'name'  => 'Verdana'
    ));      
 $phpExcel->getDefaultStyle()
    ->applyFromArray($styleArray);

答案 2

PHPExcel不再被维护,取而代之的是phpspreadsheet。

首先阅读文档并使用 applyFromArray() 来应用样式,并阅读 phpspreadsheet 的文档:

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$styleArray = [
        'font' => [
            'bold'  =>  true,
            'size'  =>  14,
            'name'  =>  'Arial'
        ],
        'alignment' => [
            'horizontal' => Alignment::HORIZONTAL_CENTER,
            'vertical' => Alignment::VERTICAL_CENTER
        ],
        'borders' => [
            'allBorders' => [
                'borderStyle' => Border::BORDER_THIN,
                'color' => ['rgb' => '000000']
            ]
        ]
    ];
    $sheet->getStyle('A1')->applyFromArray($styleArray);

文档可以在这里找到


推荐