2013-06-26 4 views
41

Я работаю в PHPExcel. Я начинаю. Когда я использую следующий код и его работу отлично.Установить цвет шрифта, размер шрифта и размер шрифта в 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); 

Пожалуйста, помогите мне, что я делаю неправильно в приведенном выше коде.

Спасибо заранее!

ответ

97

Рекомендую начать чтение the documentation (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); 
+1

Я тралил документацию и не могу найти список параметров моделирования для ячеек в любом месте. Любая идея, где их можно получить? – Skytiger

+5

В документе [документации разработчика PHPExcel] (http://phpexcel.codeplex.com/releases/view/119187) есть ** Приложение A: допустимые ключи массива для стиля 'applyFromArray()' **, где вы найдете все ключи. Это то, что вы ищете? – Max

+0

Спасибо, да, это было то, что я имел в виду :) – Skytiger