57

我在 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 );

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

先感谢您!

4

3 回答 3

137

我建议您开始阅读文档(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);
于 2013-07-12T16:35:28.210 回答
2

以其他方式,您可以使用:

     $objPHPExcel->getActiveSheet()
            ->getStyle('A1')
            ->getFont()
            ->getColor()
            ->setRGB ('EEEEEE')  ;
于 2021-08-28T17:20:55.320 回答
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);

文档可以在这里找到

于 2021-02-28T10:17:26.463 回答