Microsoft Interop Excel 使用 xlsx 版本的 SaveCopyAs

Microsoft Interop Excel SaveCopyAs with xlsx version

我们正在尝试在 Windows 服务器上使用 MS Interop Excel 并通过 WCF 使用它(我无法以更详细的方式解释它,因为我并不完全理解它,对不起。).

我们使用方法SaveCopyAs将生成的excel文件保存在临时目录中,然后将其读取到字节数组并作为回复发送。

然而,在我们将其保存到扩展名为 xlsx 的文件并尝试打开它后,在客户端应用程序中 Excel 给我们一个文件已损坏的警告,但是在我们手动将文件名更改为xls 一切正常。

经过简短的研究,office 似乎只是将其保存为某种较旧的文件版本(?)。所以一种解决方案是使用带有有效参数的 SaveAs 方法,但这给我们带来了很多麻烦,所以我们宁愿坚持使用 SaveCopyAs.

是否有任何其他解决方案可以在没有 SaveAs 方法的情况下以较新的文件格式保存此类文件?

(你现在可能已经明白了,这是 System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC 例外。)

我们所有麻烦的根源是我们负责服务器维护的员工,他没有检查就说安装了 office 2013,但实际上是 2003。