ich zur Zeit versucht, Daten aus einem Array von Objekten zu einem Bereich in Excel mit dem folgenden Code zu schreiben, wo objData
nur ein Array von Strings ist:schreiben Array Excel-Bereich
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;
Diese fast funktioniert, das Problem ist, dass der Bereich gefüllt wird, aber jede Zelle erhält den Wert des ersten Elements in objData
.
Die inverse arbeitet, das heißt
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;
würde ein Array zurück alle Werte aus dem Arbeitsblatt enthält, also bin ich nicht sicher, warum das Lesen und Zuordnung arbeiten anders.
Hat jemand das jemals erfolgreich gemacht? Ich schreibe derzeit das Array Zelle für Zelle, aber es muss mit vielen (> 50.000) Zeilen fertig werden und das ist daher sehr zeitaufwendig.
Die gewählte Antwort macht es nicht sofort offensichtlich, so dass, wenn jemand anderes jemals dieses Problem hat, kurz gesagt, die Lösung dass Sie ein 2D-Array ('object [,]') zuweisen müssen, obwohl Ihre Daten auf nur eine Dimension passen könnten. – zneak
[sehr nützlich] (http://blogs.msdn.com/b/eric_carter/archive/2004/05/04/126190.aspx) –