В настоящее время я пытаюсь записать данные из массива объектов в диапазон в 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) строк, и поэтому это очень много времени.