使用 Open XML SDK v2.0 创建 Excel 电子表格时,我们的 Excel 输出最初可以成功运行几个月。最近Excel(所有版本)开始抱怨“Excel在'zot.xlsx'中发现不可读的内容。是否要恢复此工作簿的内容?”。我们正在 Web 应用程序中创建文件,使用MemoryStream
作为商店,然后作为byte[]
在 MIME 类型为的 HTTP 响应中"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
。坏文件的解压缩内容与没有错误的文件的解压缩内容相同。
我们花了太多时间追查这个问题,一路上捡到了一些转移注意力的东西,但最终我们发现这个坏文件在一方面是不同的。文件长度不同。归还之前MemoryStream
并写下byte[]
对于 HTTP 响应,请确保截断MemoryStream
使其容量和长度相同,使用简单的stream.Capacity = (int)stream.Length;
.
Excel 现在似乎将文件中的额外内容检测为“不可读内容”的安全风险,并抛出恼人的错误,而在过去它会接受该风险。
注:答案取自原发帖者,他之前在问题中已有答案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)