我目前正在试图从对象的数组在Excel中的一个范围内使用下面的代码,其中objData
只是一个字符串数组写入数据:写入阵列到Excel范围
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个)行,因此非常耗时。
选定的答案并不能使它立即明显,所以如果别人永远有这个问题,总之,解决的办法是即使您的数据仅适用于一个维度,也需要分配二维数组(即“对象[,]”)。 – zneak 2012-05-17 15:19:20
[非常有用](http://blogs.msdn.com/b/eric_carter/archive/2004/05/04/126190.aspx) – 2014-03-10 16:41:41