将Xml保存在Excel单元格值中会导致ComException

时间:2010-03-16 03:13:14

标签: c# vb.net excel automation

我正在尝试将对象(Class1)保存为单元格值中的字符串。我的问题是我不时有一个ComException:

HRESULT:0x8007000E(E_OUTOFMEMORY)

当我将值写入单元格时,

(它有点随机,但我还没有确定任何特定的模式)。欢迎任何想法

用于说明目的: 设Class1为要转换为Xml字符串的类。 (请注意,我在字符串的开头删除了xml声明,以避免出现前导码 - 不可打印的字符)
< Class1 xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:xsd =“http://www.w3.org/2001/XMLSchema”>

   < ElementID> HL690375< / ElementID>
< /&的Class1 gt;“中

Class1 myClass = new Class1();
此类转换为字符串s。 s = ConvertObjectToXmlString(myClass);
然后s被分配给一个单元格 范围r = Application.ActiveCell;
r.Value2 = s;

注意: (1)如果字符串太大,我将其限制为32000个字符,并将字符串拆分为32000个字符块,并将块保存在多个单元格中。
(2)在添加到单元格之前,我不引用字符串。我需要吗?如果是这样的话怎么办? (3)所有对象内容均为英文 (4)C#代码示例很棒,但VB.net代码没问题。

1 个答案:

答案 0 :(得分:0)

可能是您创建的字符串有时包含“非法”字符...就像Excel试图转换为另一个单元格位置的$ ...它可能不完全是$但是你得到了想法。