Interaction avec Excel : Problème utilisation tableau object[,]
Bonjour,
J'ai développé une application qui via un formulaire client extrait de l'information d'une base MySql pour l'exporter dans un fichier Excel.
Je bloque sur l’utilisation des object[,] pour exporter plus rapidement dans excel mes données. En effet celles ci ne s'exportent pas dans un format exploitable par excel (ex : les double sont exportés en string et du coup impossible de faire un graphe sur ces données )
Quand j'utilisais des data table (écriture cellule par cellule), j'arrivais à obtenir le bon format en convertissant ma data en double. Le problème est que compte tenue du nombre de tableaux et de leurs tailles c'est beaucoup trop long. C'est la raison pour laquelle j'essaye maintenant d'utiliser les array.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
deb = 1;
object[,] arr_model = new object[ModelTableFinal.Rows.Count, ModelTableFinal.Columns.Count];
for (int r = 0; r < ModelTableFinal.Rows.Count; r++)
{
DataRow dr = ModelTableFinal.Rows[r];
for (int c = 0; c < ModelTableFinal.Columns.Count; c++)
arr_model[r, c] = dr[c];
}
Excel.Range c1 = (Excel.Range)oSheet.Cells[8, deb];
Excel.Range c2 = (Excel.Range)oSheet.Cells[8 + ModelTableFinal.Rows.Count - 1, deb + ModelTableFinal.Columns.Count-1];
Excel.Range range = oSheet.get_Range(c1, c2);
range.Value = arr_model; |
Mon ancien code (fonctionnant avec des datatable)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
n = ModelTableFinal.Columns.Count;
for (int i = 0; i < n; i++)
{
oSheet.Cells[8, deb + i] = ModelTableFinal.Columns[i].ColumnName.ToString();
int j = 0;
if(coltoconvert.ContainsKey(ModelTableFinal.Columns[i].ColumnName.ToString()) == false)
{
foreach (DataRow currow in ModelTableFinal.Rows)
{
oSheet.Cells[9 + j, deb + i] = currow[i].ToString();
j++;
}
}
else
{
foreach (DataRow currow in ModelTableFinal.Rows)
{
if (currow[i] != DBNull.Value)
oSheet.Cells[9 + j, deb + i] = Convert.ToDouble(currow[i]);
j++;
}
}
} |
Je pourrais très bien utilisé un tableau de double double[,] mais il se peut que je mélange plusieurs format dans un même tableau.
Y a t-il possibilité d'avoir un format par colonnes ?
Merci d'avance