我有一个使用 Excel COM 互操作将数据导出到 Excel 的第 3 方应用程序。他们的程序中有一个错误导致它在使 Excel 实例可见之前失败。但是,根据显示的堆栈跟踪,从发生异常的位置开始,我需要的信息已经写入 Excel 工作表。
有没有办法使用Microsoft.Office.Interop.Excel
命名空间连接到现有的excel 实例而不是生成它自己的?或者有没有其他方法可以使孤立的 Excel 实例可见,以便我可以保存它完成的内容?
请注意,EXCEL.exe 在程序关闭后仍然在任务管理器中可见,因此在应用程序断开连接后实例仍然处于活动状态并运行。
更多详细信息:该程序正在做的是从它自己的(专有)数据库中导出报告,但是由于某种原因,数据库中的某些记录格式不正确,并导致Integer Overflow
在生成报告时发生错误。查看堆栈跟踪,似乎这个整数溢出正在发生,同时它在报告末尾生成摘要。
对于我的用途,我不需要只需要报告中的行项目的摘要,所以我希望看到它到目前为止所做的工作,但EXCEL.exe
它正在与之通信的实例是不可见的。
如果我在不同的日期范围内运行报告,则报告生成良好,只是一天中的一条记录会导致这组特定的输入导致它失败。
与应用程序提供商的支持合同已过期,管理层对更新它不感兴趣,因为我们正在切换到新供应商(这就是生成报告的原因,用作数据源数据转换)。所以我的任务是“修复它”,以便可以移动数据。
最终更新:我问这个问题的原因已经解决了。我能够通过程序本身浏览每条记录,我发现其中一个字段设置为 16274176.00 的记录(正常值在 100 中(不要问我为什么看起来是浮点数会导致Integer Overflow
错误)),一旦我将其更改为 0.00,报告打印得很好。但是,我仍然想知道我的原始问题是否有答案,因为我认为这将是我工具箱中的一个有用工具。