在CSV文件中下载MySQL数据时,CSV文件的内容类型应该是什么?

时间:2016-07-27 08:05:27

标签: php export-to-csv

我正在以Excel文件(CSV格式)的形式从数据库下载一些数据。

我正在使用header方法下载CSV文件。

我的代码如下......

header("Content-Type: application/csv");
header("Content-Disposition: attachment; filename=export.csv");
header("Pragma: no-cache");
header("Expires: 0");

但是在下载文件并打开文件后,它会显示“格式错误”错误。如何以适当的格式下载?

2 个答案:

答案 0 :(得分:1)

使用以下代替application/csv。添加如下代码的文本:

header("Content-type: text/csv");

答案 1 :(得分:1)

由于我们不知道表格,查询也不是csv文件的来源,更重要的是我们不知道CSV文件中包含的数据,我们无法给出准确的答案。

但请记住,CSV不是标准格式,因此实施可能会有所不同。

您可以收到错误消息,因为您使用的软件具有不同的实现(例如,它无法解析多行值,例如描述文本)。

典型问题是:

  • 文本值未被qouted(并且它们可以包含分隔符)
  • 文本值已被qouted但未正确转义(其中一些可以包含引号字符)
  • 数值以本地化格式导出,读取数据的应用程序尝试在另一个区域设置中解析它们
  • 某些值包含行结尾,而读取数据的软件无法处理多行值

如果您手动组装CSV内容,请确保您以目标软件可以处理的方式进行操作。

使用简单和简短的数据测试您的代码(CSV生成)以确保它正常工作。

根据RFC4180,CSV文件的内容类型为text/csv

PS:将您的问题标记为“不清楚您在问什么”,因为提供的信息不足以解决问题并缩小范围。