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。
我们正在尝试在 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。