C# Excel Interop:HRESULT 异常:使用 Range.set_Value 时出现 0x800A03EC

C# Excel Interop: Exception from HRESULT: 0x800A03EC while using Range.set_Value

我在 C# WinForms 应用程序中使用 Office Interop 库将大约 25000 行和 110 列数据写入 Excel 2016。任何元素的最大值长度为 420 个字符。

我正在使用二维对象数组从 DataTable 中读取值,并将此数组传递给 Range.set_Value 方法。

该应用程序对于其他数据表工作正常,但对于特定数据,我收到错误消息:

C# Exception from HRESULT: 0x800A03EC

同时使用 Range.set_Value。我无法弄清楚是 25000 行和 110 列中的哪一个导致了错误。

我当然可以开始将数据分成小块,直到我确定是哪一行和哪一列导致了问题,但是有没有更好的方法来调试问题?

数据中可能存在各种特殊字符(数据由第三方APP生成)

编辑 1:

我读到你不能添加超过 8192 个字符的单元格,如果它是 Excel 2007。但是我的数据在任何单元格中最多包含 425 个字符,而我的 Excel 版本现在是 2016 年。

经过反复试验,我发现了数据的问题。

二维数组中的一些元素以“=”字符开头,这在 Excel 中被视为公式的开头。由于元素值不是有效公式,因此 Excel 抛出异常。

我在这些文本值前面加上了一个 ' 符号,一切正常。

希望这对某人有所帮助。