Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开生成的excel文件时出错-';filename.xls';,与文件扩展名指定的格式不同_Excel - Fatal编程技术网

打开生成的excel文件时出错-';filename.xls';,与文件扩展名指定的格式不同

打开生成的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

我正在使用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 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文件的帖子。我们一定会研究它