2010-03-16 38 views
0

我正在嘗試將對象(Class1)作爲字符串保存在單元格值中。我的問題是,從我不時有收到COMException:在Excel單元格值中保存Xml會導​​致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>」

的Class1 myClass的新= 1類();
這個類被轉換爲一個字符串s。s = ConvertObjectToXmlString(myClass);
然後s被分配給一個單元格
範圍r = Application.ActiveCell;
r.Value2 = s; (1)如果字符串太大,我將其限制爲32000個字符,並將字符串拆分爲32000個字符的塊,並將塊保存在多個單元格中。
(2)在添加到單元格之前,我不要引用字符串。我需要嗎?如果是這樣怎麼辦?
(3)所有對象內容均爲英文。
(4)C#代碼示例會很好,但是VB.net代碼是可以的。

+0

在每次使用時記錄字符串的內容。發生異常時,將記錄的值與以前的值進行比較,看看是否有任何模式出現。 – AMissico 2010-03-18 00:03:05

回答

0

它可能是你創建的字符串有時包含'非法'字符......就像一個Excel試圖轉換成另一個單元格位置......它可能不是一個$,但你可以得到這個想法。

+0

你知道我在哪裏可以找到'非法'字符列表嗎?,以便我可以在我的代碼中識別它們。 在將值寫入單元格之前可以引用字符串是一種解決方法嗎? – 2010-03-17 22:31:02

+0

檢查Excel的幫助文件。不,你不能引用。 – AMissico 2010-03-18 00:01:12

+0

我在報價中放置了非法內容,因爲沒有什麼特別非法的,本身,它只是一些字符串可能會被誤解(例如$ A101或某些XL函數名稱)您可以在清空數據的代碼周圍放置TRY CATCH進入單元格,但您可能會收到一個錯誤,但一開始就是正確的但沒有意義。這可能是因爲您可以強制目標單元格的格式只接受STRING,從而「關閉」XL解析器。 – tobrien 2010-03-18 12:07:49

相關問題