Excel显示HTML代码

时间:2015-04-27 10:53:33

标签: php html excel

我想从html代码创建excel表,我的代码在下面。

 <?php

include_once("database/connect.php");

$db->mquery('a_menus','*');
$types=$db->fetchdata();

$menus=array();
$menus=$types->menu_name;

$file = "test.csv";
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=$file");

$fh = fopen('php://output', 'w');
foreach($menus as $data){ fputcsv($fh, $data); }
fclose($fh);

?>

请你告诉我错误。

2 个答案:

答案 0 :(得分:1)

我可以打开您的代码在MS Excel 2013中生成的文件,但它会显示警告:

  

&#34; test.xls&#34;的文件格式和扩展名不匹配。文件   可能已损坏或不安全。除非你相信它的来源,否则不要打开   它

您的代码存在一些未成年人问题,例如错误的字符集名称(应该是ISO-8859-1)和令人困惑的Content-type标头。很可能是因为使用旧版本的Excel无法识别HTML格式而导致问题。

要生成将由所有MS Excel版本(及其替代品)打开的正确CSV文件,并避免格式错误警告,请使用以下代码。

<?php

$file = "test.csv";

$results = array(
   array('cell 1', 'cell 2')
);

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=$file");

$fh = fopen('php://output', 'w');
foreach($results as $data){ fputcsv($fh, $data); }
fclose($fh);

?>

正如评论者所述,仅使用.xls扩展名命名文件不会生成Excel文件。

答案 1 :(得分:-1)

其他答案不正确。

Excel可以读取扩展名为.xls且内置HTML的文件,而且您的代码适用于我。

我认为问题出在其他地方。