上面的答案在PHPExcel會給你很好的結果。但是如果你想用corePHP來實現它,那麼這裏就是代碼來暗示。
<?php
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
}
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
}
function xlsWriteLabel($Row, $Col, $Value) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
}
// prepare headers information
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=\"export_".date("Y-m-d").".xls\"");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
// start exporting
xlsBOF();
// first row
xlsWriteLabel(0, 0, "id");
xlsWriteLabel(0, 1, "name");
xlsWriteLabel(0, 2, "email");
// second row
xlsWriteNumber(1, 0, 230);
xlsWriteLabel(1, 1, "John");
xlsWriteLabel(1, 2, "[email protected]");
// third row
xlsWriteNumber(2, 0, 350);
xlsWriteLabel(2, 1, "Mark");
xlsWriteLabel(2, 2, "[email protected]");
// end exporting
xlsEOF();
exit;
?>
參考從http://krasimirtsonev.com/blog/article/php-export-mysql-data-to-xls-file
您是否嘗試設置文件名以'MyFile.xlsx'? – 2012-08-03 09:35:57
我認爲當您試圖在Excel中打開文件時出現錯誤?那麼,正如你已經注意到你得到這個錯誤,因爲你沒有在文件中的任何內容,它顯然不會打開,直到你輸出一個實際的Excel xls文件。 當你開始輸出實際的Excel內容時,它應該消失。該警告讓您知道格式實際上不是Excel文件。當你開始使用PHPExcel時,它將會/應該消失。 – 2012-08-03 09:38:22