2016-04-12 22 views
0

Ich benutze PHPExcel mit coderigniter zu .xlx, .xlxs Datei zu generieren, funktioniert alles perfekt außer Textformatierung. Hier ist der Screenshot der HTML-Ansicht, die ich an die PHPExcel-Bibliothek übergebe, um die .xlx-Datei zu erzeugen.PHPExcel Stil Text zu zentrieren

enter image description here

Und ist hier der Ausgang. enter image description here

Wie Sie sehen können, dass Texteindruck und Stile entfernt werden. Hier ist mein Code zum Generieren der Ausgabe.

public function html_to_excel_download($filename, $data=null){ 
    if ($data != null) { 
    // proper encoding of data UTF-8 for unicode characters 
    $data = chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $data); 

    // Put the data into a temporary file 
    $tmpfile = time().'.html'; 
    file_put_contents($tmpfile, $data); 

    // Read the contents of the file into PHPExcel Reader class 
    $reader = new PHPExcel_Reader_HTML; 
    $content = $reader->load($tmpfile); 


    // Excel Writer 
    $objWriter = PHPExcel_IOFactory::createWriter($content, 'Excel2007'); 


    // Download File 
    header('Content-Type: application/vnd.ms-excel'); 
    header('Content-Disposition: attachment;filename="'.$filename.'"'); 
    header('Cache-Control: max-age=0'); 
    $objWriter->save('php://output'); 
    unlink($tmpfile); 

    exit(); 
} 

} 

Wie kann ich Titeltext in die Mitte einrücken?

Antwort

0
// single column A, setting e.g. horizontal alignment 
$objWorksheet->getStyle('A')->getAlignment()->setHorizontal(...); 

// range of columns A to K 
$objWorksheet->getStyle('A:K')->getAlignment()->setHorizontal(...); 

UND können Sie eine vollständige Dokumentation auf dieser Website für die Formatierung BLATT HERE

+0

Dank für die Antwort finden werde ich einige Änderungen an meinem Code und versucht Styling nach dem Erstellen neuer phpexcel-Objekt, '$ Excel = new PHPExcel(); $ worksheet = $ excel-> getActiveSheet(); // style $ worksheet-> getStyle ("A") -> getFill() -> getStartColor() -> setRGB ("FFFF00"); ', aber immer noch nicht funktioniert. Kannst du mir bitte sagen, wo ich vermisse? –

1

Sie können versuchen, einen anderen Weg, das zu tun sehen ... Schritt 1) ​​Definieren Sie „$ this-> Excel-> setActiveSheetIndex (0) an der Spitze der Funktion

Schritt 2) Art Array definieren und als eine Variable mit Excel-Objekt hinzufügen wie

$styleArray = array(
     'font' => array(
      'bold' => true, 
      'color' => array('rgb' => '2F4F4F') 
     ), 
     'alignment' => array(
      'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 
     ) 
    ); 

Schritt 3) $this->excel->getActiveSheet()->getStyle('A3:Z3')->applyFromArray($styleArray);

Anmerkung: Sie haben getStyle zu verwenden() in Ihrem Code, um bestimmte Stile auf Spalte/Zeile anzuwenden

+0

vielen vielen Dank. –

0

Es gibt zwei Möglichkeiten, wie Sie dieses Problem loswerden können, ist eine ohne JSON-Array:

$doc->getActiveSheet()->getStyle('A1:H1')->getAlignment() 
    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 

wobei $ doc = new PHPExcel(); oder ein PHPExcel Objekt

Die zweite ist mit der json Array as described here

Ich bin mir ziemlich sicher, dass Sie alle Anweisungen zu dieser Bibliothek in the official documentation