使用interop抛出错误在excel工作簿中编写长文本?

dot*_*der 7 .net c# vb.net excel com-interop

我正在将长文本(1K到2K字符长,普通xml数据)写入excel工作簿中的单元格.以下语句从HRESULT抛出COM错误异常:0x800A03EC

range.set_Value(Type.Missing, data);
Run Code Online (Sandbox Code Playgroud)

如果我复制将相同的xml手动粘贴到excel中它只是工作正常,但同样不能正常工作.如果我将文本剥离为100/300个字符,它可以正常工作.

cjk*_*cjk 5

有一个限制(如果我没记错的话,有800到900个字符),这几乎是不可能的.

尝试使用ole连接并使用SQL命令插入数据.这对你来说可能更好.然后,您可以使用互操作来进行任何格式化.

  • 是的,限制是911个字符.不确定这是什么解决方案. (4认同)

dot*_*der 5

以下知识库文章解释了最大限制为911个字符.我在我的代码上检查了相同,它确实适用于字符串高达911个字符.

http://support.microsoft.com/kb/818808

本文中提到的解决方法建议确保没有单元格保存超过911个字符.多数民众赞成!