2016-06-22 8 views
1

Ich erzeuge Excel mit der Dateierweiterung von .xlsxPHP generieren .xlsx

Hier ist mein einfacher Code ist

$file = "test.xlsx"; 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment; filename='.$file); 
$content = "Col1\tCol2\tCol3\t\n"; 
$content .= "test1\ttest1\ttest3\t\n"; 
$content .= "testtest1\ttesttest2\ttesttest3\t\n"; 
echo $content; 

zu erzeugen, aber ich erhalte eine Fehlermeldung, wenn ich die erzeugte Datei öffnen.

Excel cannot open the file 'test.xlsx' because the file format or file extension is not valid.

für 1 Stunde nach dem richtigen Code gesucht, aber ich habe die Lösung nicht finden.

Vielen Dank im Voraus.

+0

Überprüfen Sie diese http://tekina.info/generating-excel-using-phpspreadsheet-php/ –

Antwort

5

Sie können nicht nur eine ohne eine Bibliothek erstellen. Lesen Sie diese PHPExcel Github, die Sie in die richtige Richtung weisen sollte.

+0

Danke für den Link, ich werde das jetzt nutzen! :) –

+0

Keine Sorgen, mein Vergnügen. Vergessen Sie nicht, andere Antworten zu versuchen, um zu sehen, ob sie mehr sind, was Sie suchen, und die passendste als die Antwort zu markieren. Dies hilft Ihnen und der Person, die die Frage beantwortet hat. Weitere Informationen finden Sie in der Hilfe zum Stack-Überlauf bei http://stackoverflow.com/help/someone-answers. –

+0

Woher habe ich die Dokumentation? –

0

Möglicherweise ist die Datei nicht mit der Version von Excel kompatibel, die verwendet wird. Versuchen Sie, ändern Sie Ihre Dateierweiterung 'xlsx' zu 'xls und überprüfen Sie, ob es funktioniert oder nicht. Wenn es funktioniert, dann ist diese Dateierweiterung (.xlsx) nicht kompatibel mit der Version von Excel, die Sie verwendet haben.

+0

Ja, ich habe dies versucht und die .xls funktioniert. Ich werde herausfinden, ob es sich um eine Version handelt. danke –

+0

Ich glaube nicht, dass es auf Version ist, weil ich versuchte, .xlsx Datei zu öffnen, und es öffnete sich. –

0

Der Inhalt ist kein gültiger xlsx-Inhalt. Versuchen Sie, Ihren Inhalt als durch Komma getrennten Wert zu senden und verwenden Sie xls, um das zu öffnen

Als Vorschlag, wenn Sie Ihren Inhalt ändern können, können Sie dies versuchen?

$file = "test.csv"; 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment; filename='.$file); 
$content = "Col1,Col2,Col3\n"; 
$content .= "test1,test1,test3\n"; 
$content .= "testtest,ttesttest2,testtest3\n"; 
echo $content; 
+0

Das würde effektiv eine CSV erstellen. A .xls und .xlsx sind unterschiedlich. Wenn er eine CSV erstellen würde, wäre fputcsv() besser als das, was er zu verwenden versucht. –

+0

Ich stimme völlig zu .. Nur, dass ich den Inhalt sehr einfach und einen guten Kandidaten für ein CSV-Format gefunden habe. –

+0

@TrudeauFernandes danke für den Vorschlag, aber ich brauche XLSX-Format. –

0

meinen Code Siehe, hier habe ich einfach xlsx Datei

<?php 

include 'PHPExcel/PHPExcel.php'; 
include 'PHPExcel/PHPExcel/Writer/Excel2007.php'; 

$objPHPExcel = new PHPExcel(); 


$objPHPExcel->setActiveSheetIndex(0); 
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello'); 
$objPHPExcel->getActiveSheet()->SetCellValue('B1', 'Trudeau'); 
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Fernandes'); 

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 

echo " Click here for gerate xlsx file <a href='test.xlsx'>clicking me</a>"; 
?> 

und für mich gemacht, es funktioniert gut.