2011-11-08 19 views
22

Come si crea un valore di cella in grassetto usando PHPExcel? So che posso usare \ n per aggiungere un ritorno a capo all'interno del testo, ma c'è un qualche modo per mettere in grassetto una parte del valore della cella? Ho anche provato a utilizzare la formattazione HTML come <b> o <forte> ma non ha funzionato.PHPExcel - Come rendere una parte del testo in grassetto

risposta

39

È possibile parte in grassetto del testo in una cella utilizzando i contenuti multimediali, come descritto nella sezione 4.6.37 della documentazione per gli sviluppatori.

$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

Ciao Mark, grazie per la tua risposta, funziona per lo scrittore di oggetti Excel2007. Ma non può funzionare per Excel5. –

+0

Il rich text non è ancora supportato per Excel5 Writer –

+1

Grazie per le informazioni e grazie per l'ottima libreria PHPExcel. –

13

Sì, è possibile il valore in grassetto una cella con il seguente codice:

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

Spero che questo aiuti.

Source

+0

Ha fatto sì che il valore dell'intera cella fosse in grassetto. Ma non è quello che sto cercando. Quello che stavo chiedendo è, solo per fare in modo che una parte del valore della cella diventi audace, diciamo solo "ciao" o "mondo". –

+0

Vedo, prova la risposta di @ Mark in quel caso, sembra più appropriato. –

+0

questo è quello che sto cercando. Grazie. – littlealien

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

uso singola cella:

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

per più celle uso:

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

Questo renderà solo l'intero valore della cella in grassetto. È necessario utilizzare RichText come suggerimento Mark Baker. E Btw, è uno degli sviluppatori di PHPExcel. –

+0

Ho svitato questa risposta anche se non risponde alla domanda dell'OP, ma ha aiutato la mia causa. – Frodik

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

non funziona questa soluzione –

3

È possibile utilizzare la classe helper HTML in PHPExcel al testo in grassetto.

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

Questo mi ha aiutato! Il metodo rich text ha causato un errore xml (ripristinabile). – Klompenrunner

Problemi correlati