2011-11-08 183 views
22

如何使用PHPExcel創建粗體單元格值?我知道我可以使用\ n在文本中添加回車符,但有沒有某種方法可以粗體顯示單元格的一部分值?我也嘗試使用HTML格式,如<b>或<強>但它沒有工作。PHPExcel - 如何將文本的一部分加粗

回答

39

您可以使用豐富的文本格式的單元格,作爲開發者文檔的部分37年6月4日所描述的文字加粗部分。

$objRichText = new PHPExcel_RichText(); 
$objRichText->createText('This text is '); 

$objBold = $objRichText->createTextRun('bold'); 
$objBold->getFont()->setBold(true); 

$objRichText->createText(' within the cell.'); 

$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText); 
+0

嗨馬克感謝您的回答,這是Excel2007對象編寫器的工作。但它不能用於excel5。 –

+0

Excel5 Writer尚不支持富文本格式 –

+1

感謝您提供的信息和感謝偉大的PHPExcel庫。 –

13

是的,你可以大膽的細胞與下面的代碼值:

$workbook = new PHPExcel; 
$sheet = $workbook->getActiveSheet(); 
$sheet->setCellValue('A1', 'Hello World'); 
$styleArray = array(
    'font' => array(
     'bold' => true 
    ) 
); 
$sheet->getStyle('A1')->applyFromArray($styleArray); 
$writer = new PHPExcel_Writer_Excel5($workbook); 
header('Content-type: application/vnd.ms-excel'); 
$writer->save('php://output'); 

希望這有助於。

Source

+0

它確實使整個單元格的值變得粗體。但那不是我想要的。我所問的只是爲了讓細胞價值的某些部分變得大膽,比如說「你好」或「世界」。 –

+0

我明白了,在這種情況下試試Mark @的答案,看起來更合適。 –

+0

這就是我要找的。謝謝。 – littlealien

7
$objPHPExcel->setActiveSheetIndex(0) 
      ->setCellValue('A1', 'Hello') 
      ->setCellValue('B1', 'world!') 
      ->setCellValue('C1', 'Hello') 
      ->setCellValue('D1', 'world!'); 

適用於單節使用:

$objPHPExcel->getActiveSheet()->getStyle("A1")->getFont()->setBold(true); 

的多個小區都使用:

$objPHPExcel->getActiveSheet()->getStyle("A1:D1")->getFont()->setBold(true); 
+0

這隻會使單元格的整個值變得大膽。您需要使用RichText作爲Mark Ba​​ker建議。順便說一句,他是PHPExcel Developers之一。 –

+0

我已經upvoted這個答案,即使它不回答OP的問題,但它有助於我的事業。 – Frodik

0
$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true); 
+0

無法使用此解決方案 –

3

您可以使用PHPExcel的HTML輔助類爲粗體文字。

$htmlHelper = new \PHPExcel_Helper_HTML(); 
$html = "<b> Bold Text!! </b>"; 
$rich_text = $htmlHelper->toRichTextObject($html); 
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $rich_text); 
+0

這幫了我!富文本方法導致(可恢復)xml錯誤。 – Klompenrunner