2016-06-14 17 views
1

Alle in dem Titel,Export HTML-Tabelle zu xls Vorlage PHPExcel

Ich möchte nur eine HTML-Tabelle zu .xls Vorlage mit PHPExcel exportieren.

Ich googelte die letzten zwei Tage, aber ich konnte keine funktionierende Lösung finden.

Vielen Dank im Voraus.

EDIT

Ich fand dies in Stackoverflow, aber ich war nicht in der Lage, mit ihm zu arbeiten

// $sql = sql query e.g "select * from mytablename" 
    // $filename = name of the file to download 
     function queryToExcel($sql, $fileName = 'name.xlsx') { 
       // initialise excel column name 
       // currently limited to queries with less than 27 columns 
     $columnArray = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); 
       // Execute the database query 
       $result = mysql_query($sql) or die(mysql_error()); 

       // Instantiate a new PHPExcel object 
       $objPHPExcel = new PHPExcel(); 
       // Set the active Excel worksheet to sheet 0 
       $objPHPExcel->setActiveSheetIndex(0); 
       // Initialise the Excel row number 
       $rowCount = 1; 
    // fetch result set column information 
       $finfo = mysqli_fetch_fields($result); 
// initialise columnlenght counter     
$columnlenght = 0; 
       foreach ($finfo as $val) { 
// set column header values     
    $objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$columnlenght++] . $rowCount, $val->name); 
       } 
// make the column headers bold 
       $objPHPExcel->getActiveSheet()->getStyle($columnArray[0]."1:".$columnArray[$columnlenght]."1")->getFont()->setBold(true); 

       $rowCount++; 
       // Iterate through each result from the SQL query in turn 
       // We fetch each database result row into $row in turn 

       while ($row = mysqli_fetch_array($result, MYSQL_NUM)) { 
        for ($i = 0; $i < $columnLenght; $i++) { 
         $objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$i] . $rowCount, $row[$i]); 
        } 
        $rowCount++; 
       } 
// set header information to force download 
       header('Content-type: application/vnd.ms-excel'); 
       header('Content-Disposition: attachment; filename="' . $fileName . '"'); 
       // Instantiate a Writer to create an OfficeOpenXML Excel .xlsx file   
       // Write the Excel file to filename some_excel_file.xlsx in the current directory     
       $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
       // Write the Excel file to filename some_excel_file.xlsx in the current directory 
       $objWriter->save('php://output'); 
      } 
+0

Wenn Sie versuchen, HTML 'table' Inhalt von' .xls' zu speichern, erhalten Sie das gleiche Ergebnis .. versuchen Sie dies !! –

+0

warum html? Sie können direkt Zeilen von PHP holen, um Excel zu generieren: https://phpexcel.codeplex.com/wikipage?title=Examples&referringTitle=Home – Mimouni

+0

Veröffentlichen Sie die Ergebnisse Ihrer Suche, damit wir eine Vorstellung davon haben, was Sie vorhaben! –

Antwort

0

PHP auf dem Server ausgeführt wird, generiert eine HTML-Seite, und nur die generierte Seite gesendet an den Client!

PHPExcel ist eine PHP-Bibliothek und läuft daher auch auf dem Server und erzeugt eine Excel-Datei (anstelle einer HTML-Seite), die an den Client gesendet wird. Sie können PHPExcel nicht zum Generieren einer XLS-Datei von der HTML-Seite verwenden, da sich diese Seite auf der Clientseite befindet. PHPExcel hat nur Zugriff auf die Informationen auf der Serverseite (z. B. lokale PHP-Variablen oder eine SQL-Datenbank).

Wenn Sie PHPExcel zum Generieren Ihrer Excel-Datei verwenden möchten, kopieren Sie bitte die PHPExcel-Quelldateien und Beispiele auf Ihrem Server. Zeigen Sie einfach mit Ihrem Browser auf eine der Beispielseiten und sehen Sie, wie die Excel-Datei generiert wird. Sie erhalten eine Download-Option, anstatt sie im Browser anzuzeigen.