Сохранение XML в ячейке Excel вызывает значение ComException - PullRequest
0 голосов
/ 16 марта 2010

Я пытаюсь сохранить объект (Class1) в виде строки в значении ячейки. Моя проблема в том, что время от времени у меня есть ComException:

HRESULT: 0x8007000E (E_OUTOFMEMORY)

(Это довольно случайно, но я еще не определил какой-либо конкретный шаблон), когда я записываю значение в ячейку. Любые идеи будут приветствоваться

Для иллюстрации: Пусть Class1 будет классом, который будет преобразован в строку XML. (Обратите внимание, что я удалил объявление xml в начале строки, чтобы избежать присутствия преамбулы - не печатного символа)

HL690375
</ Class1> "

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 голосов
/ 16 марта 2010

Возможно, ваши созданные строки иногда содержат «недопустимые» символы ... например, $, который Excel пытается преобразовать в другое место в ячейке ... Это может быть не ровно $, но вы получите идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...