Je suis en train d'essayer d'écrire des données à partir d'un tableau d'objets à une plage dans Excel à l'aide du code suivant, où objData
est juste un tableau de chaînes de caractères:
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;
Cette très près des œuvres, le problème étant que la plage se remplit, mais chaque cellule obtient la valeur du premier élément dans l' objData
.
L'inverse fonctionne, c'est à dire
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;
serait retourner un tableau contenant toutes les valeurs de la feuille de calcul, donc je ne suis pas sûr pourquoi, la lecture et l'attribution de travailler différemment.
Quelqu'un a déjà fait cela avec succès? Je suis en train d'écrire la matrice de cellule par cellule, mais il doit faire face à beaucoup (>50 000 habitants) de lignes et c'est donc très coûteuse en temps.