导出.CSV文件,如果我用列名称导出它,它会告诉我它是SYLK格式

时间:2013-05-28 19:22:11

标签: php html mysql excel csv

将SQL数据库表中的内容导出到.csv文件。如果我添加列名,它会在尝试打开下载的.csv文件时给出这些错误:

Error #1

Error #2

但是,如果我在没有列的情况下导出它,它将打开正常而没有错误。我试过改变Content-Type:从text / csv到application / csv,没有改变任何东西。我没有想法。

<?php
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=applications.csv");
header("Pragma: no-cache");
header("Expires: 0");

ini_set('display_errors',1);
$private=1;
error_reporting(E_ALL ^ E_NOTICE);

mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("cif") or die(mysql_error());

$query = "SELECT * FROM applications";
$select_c = mysql_query($query) or die(mysql_error());

/* The line below is what I comment out to remove the column names */
$result.="ID,LAST_NAME,FIRST_NAME,ORGANIZATION,TITLE\n"; 
/* The line above is what I comment out to remove the column names */

while ($row = mysql_fetch_array($select_c, MYSQL_ASSOC))
{
    $result.="{$row['ID']},";
    $result.="{$row['LAST_NAME']},";
    $result.="{$row['FIRST_NAME']},";
    $result.="{$row['ORGANIZATION']},";
    $result.="{$row['TITLE']},";
    $result.="\n";

}
    echo $result; 
?>

1 个答案:

答案 0 :(得分:1)

看起来您的列数不匹配。

标题行有5个条目,但每个后续行有6个(因为尾随逗号)。

您可以在标题行的末尾添加逗号,也可以从数据行中删除尾随的逗号。


编辑: SYLK文件以“ID”开头。 http://support.microsoft.com/kb/323626

让你的第一个专栏名称不以“ID”开头,你就可以了。