2017-09-30 2 views
0

Wenn ich ein phpexcel-Dokument erstellen, habe ich eine benutzerdefinierte Schriftgröße festgelegt.Codeigniter & PHPexcel Schriftgröße ändert sich nicht in der ersten Zeile

Aus irgendeinem Grund ändern sich die Schriftgrößen nicht in der ersten Zeile.

Frage: Wie sicher stellen, dass alle Zeilen die gleiche Größe einschließlich der Kopfzeile haben

ich den Code in einer foreach-Schleife auf Haupt-Controller haben, aber die erste Reihe der Zellen verpassen.

enter image description here

$styleArray = array(
     'font' => array(
     'size' => 15, 
     'name' => 'Candara' 
     )); 

     $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->applyFromArray($styleArray); 


$objPHPExcel->getActiveSheet()->getStyle($objPHPExcel->getActiveSheet()->calculateWorksheetDimension())->applyFromArray($styleArray2); 

-Controller

<?php 

class Events extends MX_Controller { 


    public function generate_excel() { 

     $query = $this->db->get('event'); 
     $excelresults = $query->result_array(); 

     require (APPPATH . 'third_party/PHPExcel-1.8/Classes/PHPExcel.php'); 
     require (APPPATH . 'third_party/PHPExcel-1.8/Classes/PHPExcel/Writer/Excel2007.php'); 

     $objPHPExcel = new PHPExcel(); 

     $objPHPExcel->getProperties()->setCreator(""); 
     $objPHPExcel->getProperties()->setLastModifiedBy(""); 
     $objPHPExcel->getProperties()->setSubject(""); 
     $objPHPExcel->getProperties()->setCreator(""); 
     $objPHPExcel->getProperties()->setDescription(""); 

     $objPHPExcel->setActiveSheetIndex(0); 

     $objPHPExcel->getActiveSheet()->SetCellValue("A1", 'Event'); 
     $objPHPExcel->getActiveSheet()->SetCellValue("B1", 'Event Title'); 
     $objPHPExcel->getActiveSheet()->SetCellValue("C1", 'Event Date'); 
     $objPHPExcel->getActiveSheet()->SetCellValue("D1", 'Event Start Time'); 

     $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); 
     $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); 

     $objPHPExcel->getActiveSheet()->setPrintGridlines(TRUE); 

     $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); 

     $excelrow = 2; 

     foreach ($excelresults as $excelresult => $excelvalue) { 

      $styleArray = array(
      'font' => array(
      'size' => 15, 
      'name' => 'Candara' 
      )); 

      $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->applyFromArray($styleArray); 

      if (!empty($excelvalue['fill_color'])) { 
        // Set the fill style 
      $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); 
        // Set the colour for the fill 
      $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->getFill()->getStartColor()->setRGB($excelvalue['fill_color']); 

       $styleArray1 = array(
        'font' => array(
         'color' => array('rgb' => $excelvalue['font_color']), 
        ) 
       ); 

      $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->applyFromArray($styleArray1); 

      $objPHPExcel->getActiveSheet()->getStyle('A' . $excelrow . ':D' . $excelrow)->getAlignment()->setIndent(2); 


      } 

      $objPHPExcel->getActiveSheet()->SetCellValue("A" . $excelrow, $excelvalue['event']); 
      $objPHPExcel->getActiveSheet()->SetCellValue("B" . $excelrow, $excelvalue['event_title']); 
      $objPHPExcel->getActiveSheet()->SetCellValue("C" . $excelrow, $excelvalue['event_date']); 
      $objPHPExcel->getActiveSheet()->SetCellValue("D" . $excelrow, $excelvalue['event_start_time']); 

      $excelrow++; 


     } 

     ///exit(); 

     $filename = 'Bowling-Events-For-' . date('Y') . '.xlsx'; 

     $objPHPExcel->getProperties()->setTitle("Riwaka Bowling Club Events"); 

     header("Content-Type: application/vnd.ms-excel; charset=utf-8"); # Important 
     header("Content-Type: application/force-download"); 
     header("Content-Type: application/octet-stream"); 
     header("Content-Type: application/download"); 

     header("Content-Disposition: attachment; filename=".$filename.""); 
     header("Content-Transfer-Encoding: binary"); 

     header("Pragma: no-cache"); 

     header("Expires: 0"); 

     header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
     header("Cache-Control: private",false); 

     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
     $objWriter->save('php://output'); 

     exit(); 
    } 
} 

Antwort

0

Sind Sie sicher, dass Sie Ihren korrekten Codes angeschlossen haben? Oder sind Sie sicher, dass Sie Ihre angehängten Codes getestet haben?

Ich habe Ihre Codes getestet, und es funktioniert gut bei mir.

my screenshot

+0

Könnte es sein, weil ich eine Füllfarbe verwende? – user4419336

+0

Es scheint auf dem Boden, aber keine Polsterung oben – user4419336

+0

Polsterung ist es nicht, weil Sie die Füllfarbe verwenden. Wie Sie bei mir sehen können, wird eine FFFFFF-Füllfarbe verwendet. Ich habe Angst, wenn wir eine andere Excel-Version oder etwas anderes haben. Ich benutze Büro 2013 btw –

Verwandte Themen