JAVA – 保存excel(办公室2010)没有格式警告
我必须在Excel文件中写入一些数据。 但是当我用这个数据打开excel文件时,teher出现一个警告:
`The file you are trying to open, 'name.xls', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a thrusted source before opening the file. Do you want to open the file now?`
我正在使用Microsoft Excel 2010.当我创buildHttpServletResponse响应时,我添加了有关标题和内容types的信息:
response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", some info about file name + ".xls\"");
我也试图设置另一个头,如: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
和文件格式为.xlsx
,但也没有帮助,因为警告仍然出现。
当我试图使用.csv或.xml格式,我没有这个问题,因为没有警告出现。 有没有可能以编程方式摆脱此警告?
您试图打开的文件'name.xls'的格式与文件扩展名指定的格式不同
这是使用xls
扩展名加载xlsx
文件时的标准Excel警告。 没有办法通过编程来避免它。 您将不得不解决潜在的不匹配问题。
debugging:
-
保存文件的本地副本,将扩展名更改为xlsx,并查看它是否在Excel中加载而没有警告。
-
如果确实如此,请调整您的ContentType标头以适应。
-
如果没有,那么文件可能是其他格式。 找出这个格式是什么,并再次调整头文件/文件名以适应。
另请参阅我在这里关于延伸强化的答案。
从上面的评论 – 你得到的错误是因为你正在设置的内容types和内容不匹配。尝试张贴一个表格与一些数据作为响应内容的HTML。
我有同样的问题,但我改变后得到解决
response.setContentType("application/vnd.openxml");