В настоящее время я пытаюсь записать данные из массива объектов в диапазон в Excel, используя следующий код, где objData
- это всего лишь массив строк:
private object m = System.Type.Missing;
object[] objData = getDataIWantToWrite();
Range rn_Temp;
rn_Temp = (Range)XlApp.get_Range(RangeName, m);
rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1);
rn_Temp.value2 = objData;
Это почти работает, проблема в том, что диапазон заполняется, но каждая ячейка получает значение первого элемента в objData
.
Обратные произведения, т.е.
private object m = System.Type.Missing;
object[] objData = new object[x,y]
Range rn_Temp;
rn_Temp = (Range)XlApp.get_Range(RangeName, m);
rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1);
objData = (object[])rn_Temp.value2;
вернет массив, содержащий все значения из рабочего листа, поэтому я не уверен, почему чтение и назначение работают по-другому.
Кто-нибудь когда-либо делал это успешно? В настоящее время я пишу ячейку массива по ячейке, но ей нужно справляться с большим количеством ( > 50 000) строк, и поэтому это занимает очень много времени.