我正在尝试将对象(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代码没问题。
答案 0 :(得分:0)
可能是您创建的字符串有时包含“非法”字符...就像Excel试图转换为另一个单元格位置的$ ...它可能不完全是$但是你得到了想法。