我已经将使用 SOAP 工具箱(不再受支持)对 Web 服务进行一些调用的 Excel 2003 电子表格转换为使用 VSTO 的 Excel 2010。
电子表格工作得很好,并且(主要)做了它应该做的事情,现在我想从网站上向用户提供它。
我原以为它应该与提供仍然可用的 2003 版本相同,所以我基本上复制了 Excel 2003 电子表格的下载按钮,它应该可以正常工作。
当我为 2010 电子表格尝试此操作时,我收到一个 Excel 错误说明
“Excel 在“SpreadSheet_name.xlsx”中发现了不可读的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的来源,请单击“是”。
Excel 然后修复了问题,电子表格可以正常使用。
当我从完成下载的源文件夹中打开电子表格时,它会毫无错误地打开,就像修复上述错误并保存文件一样。
这是用于当前 Excel 2003 下载按钮的代码 -
Response.WriteFileAsAttachment("application/ms-excel", Server.MapPath("~/pathname/Spreadsheet_2003.xls"), 8192);
Response.End();
这就是我为 2010 下载按钮单击所拥有的,上面是 Excel 2010 的更新 MIME 信息 -
Response.WriteFileAsAttachment("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", Server.MapPath("~/pathname/Spreadsheet_2010.xls"), 8192);
Response.End();
我已经尝试了各种论坛上建议的几件事,并且都得到了相同的结果。
我正在使用通过 VS 2010 运行的 C# 和 ASP.Net 来测试这个,所以有人建议 VS 中受限的 IIS 可能是个问题?
任何帮助或建议将不胜感激。
谢谢,乔治。