打开生成的excel文件时出错-';filename.xls';,与文件扩展名指定的格式不同
我正在使用sql查询和以下代码生成一个excel文件-打开生成的excel文件时出错-';filename.xls';,与文件扩展名指定的格式不同,excel,Excel,我正在使用sql查询和以下代码生成一个excel文件- header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=excelfile.xls"); 但当用户生成excel并下载它并尝试打开文件时,他们会收到以下错误- "The file you are trying to open, 'filename.xls', is in a different
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=excelfile.xls");
但当用户生成excel并下载它并尝试打开文件时,他们会收到以下错误-
"The file you are trying to open, 'filename.xls', is in a different format
than specified by the file extension. Verify that the file is not corrupted
and is from a trusted source before opening the file. Do you want to open
the file now?"
单击Yes
文件将毫无问题地打开
如何在不打扰用户的情况下解决问题
我在这个论坛上读过其他帖子,但它们不清楚或者似乎不起作用
例如,将扩展名更改为xlsx不起作用
有人能帮忙吗
您可以从下载excel生成的文件示例。您是否正在生成带有逗号分隔符的文件?例如“A”、“B”、“C”。。。。 当您编写真正的.csv文件并将其称为xls文件时,我收到了相同的错误消息 Excel可以打开这些文件,但最终用户必须将“另存为”转换为真正的Excel格式 如果不希望出现错误,则必须使用更复杂的库来编写excel头文件。有关更多信息,请参阅 编辑:我看了你的文件。Excel是正确的,这不是Excel文件。正如其他人所指出的那样,编写制表符分隔的数据并将其命名为.xls并不会改变头文件的省略,而头文件实际上使其成为excel文件
这将演示如何以xml样式的格式编写excel文件。您可以从代码中看到,有很多额外的事情要做。您必须相应地修改pl/sql代码。我在使用pl/sql写入.csv文件时遇到了这个问题,直到我在头文件中用“像这样: 标题|行:=“‘姓氏’、“| |”、“名字”、“| |”、“日期”;
UTL_文件。PUT_行(outhandle,header_行)如果您在文本编辑器中打开文件,您可能会对其格式有一些了解。Excel 2007文件将以字符
PK
开头,Excel 97-2003文件将以类似的开头。CSV文件将看起来像由逗号分隔的纯文本。Phylogenesis,您可以从中下载文件。它不显示任何字符如您所述的字符此文件为制表符分隔格式。不幸的是,在Excel中自动正确解析这些文件的唯一扩展名是.txt
。默认情况下,这些文件将在记事本(或其他纯文本编辑器)中打开。谢谢,Phylogenesy,在回答中,kevinsky提供了一个用xml样式编写excel的代码。我们将研究kevinsky,您可以从中下载该文件。它是一个正确的excel文件,而不是逗号分隔的文件kevinsky,感谢您发表关于用xml样式编写excel文件的帖子。我们一定会研究它