Excel 中带有 interopServices C# 的 COMException

COMException with interopServices C# in Excel

我在某些机器上安装我的程序时遇到了一个非常恼人的问题,我开发了一个 C# 应用程序并且一切正常,我肯定我在另一台机器上测试它没有问题但是当我在我的客户端上安装它时机器出现以下问题:

System.Runtime.InteropServices.COMException (0x800A03EC): exception from HRESULT: 0x800A03EC at System.RuntimeType.ForwardCallToInvokeMember (String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData) at Microsoft.Office.Interop.Excel.Range.set__Default(Object RowIndex, Object ColumnIndex, Object ) at SchoolMgmt.certificate_succession.sum_operation()

当程序与 Excel、Microsoft Office 通信时(我尝试安装另一个 Office 版本但没有成功)。
我已经搜索了很多解决方案,但没有任何效果,因为它声称问题只是以下路径中的权限问题

C:\Windows\ System32\config\SystemProfile

为什么程序在我的测试机器上运行顺利成功,但在我的客户的机器上却运行不成功,这真让我抓狂!!
有什么建议吗

经过数周又数周的搜索和挖掘,我终于弄明白了!
这只是区域设置的问题!是的,我不知道为什么,但 Microsoft Office 就是这样工作的,控制面板中的区域设置应该是英语,而不是我从不同用户那里读取的任何其他语言。
因此,如果您想在 C# 应用程序中使用 Microsoft Office,请确保您的区域设置为英语等!

我遇到了同样的问题,经过几次试验,我了解到 Excel (2013) 的某些已安装版本设置了 与 Excel 兼容的选项(一般选项) 2003。在这种情况下,新创建的文件只接受 255 列和 65.535 行。由于我的应用程序正在处理数千列,因此 excel 产生了错误。 简单的解决方案是更改常规选项并将 "saved file format" 设置为“.xlsx”而不是“.xls”