2011-11-08 50 views
22

Làm thế nào để bạn tạo một giá trị ô đậm bằng cách sử dụng PHPExcel? Tôi biết tôi có thể sử dụng \ n để thêm một vận chuyển trở lại trong văn bản, nhưng là có một số loại cách để đậm một phần của giá trị tế bào? Tôi cũng đã thử sử dụng định dạng html như <b> hoặc < mạnh > nhưng không hoạt động.PHPExcel - Cách tạo một phần của văn bản đậm

Trả lời

39

Bạn có thể phần in đậm của văn bản trong một tế bào sử dụng định dạng văn bản phong phú, như mô tả trong phần 4.6.37 của tài liệu phát triển.

$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

Hi Mark cảm ơn cho câu trả lời của bạn, điều này là làm việc cho Excel2007 đối tượng nhà văn. Nhưng nó không thể làm việc cho excel5. –

+0

Văn bản đa dạng thức chưa được hỗ trợ cho Excel5 Writer –

+1

Cảm ơn bạn đã đọc thông tin và cảm ơn thư viện PHPExcel tuyệt vời. –

13

Có bạn có thể giá trị đậm của một tế bào với đoạn mã sau:

$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'); 

Hope this helps.

Source

+0

Nó đã làm cho toàn bộ giá trị ô được in đậm. Nhưng đó không phải là những gì tôi đang tìm kiếm. Điều tôi đang hỏi là, chỉ để làm cho một phần giá trị của tế bào trở nên táo bạo, hãy nói "hello" hay "world". –

+0

Tôi hiểu, hãy thử câu trả lời của @ Mark trong trường hợp đó, có vẻ phù hợp hơn. –

+0

đây là những gì tôi đang tìm kiếm. cảm ơn. – littlealien

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

cho việc sử dụng tế bào duy nhất:

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

cho nhiều tế bào sử dụng:

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

Điều này sẽ chỉ làm cho toàn bộ giá trị của ô trở nên in đậm. Bạn cần sử dụng RichText như Mark Baker Suggest. Và Btw, Ông là một trong những nhà phát triển PHPExcel. –

+0

Tôi đã bỏ phiếu cho câu trả lời này mặc dù nó không trả lời câu hỏi của OP, nhưng nó đã giúp ích cho tôi. – Frodik

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

không hoạt động giải pháp này –

3

Bạn có thể sử dụng lớp HTML helper trong PHPExcel để chữ in đậm.

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

Điều này đã giúp tôi! Phương thức văn bản đa dạng thức gây ra lỗi xml (có thể phục hồi). – Klompenrunner

Các vấn đề liên quan