GOOGLE ADS

jeudi 21 avril 2022

c# - Exporter des données d'objets volumineux vers un fichier Excel

mon programme rassemble des données à partir de différents fichiers XML en sélectionnant des données avec LINQ. Il en résulte des propriétés ci-dessous pour chaque élément de mes collections d'objets. Chaque collection ayant environ 10 000 objets (avec 11 propriétés), 15 collections.

https://i.stack.imgur.com/5R1Hj.jpg

Tout va bien jusqu'à ce que je doive les exporter vers un fichier Excel. Je boucle chaque donnée de cellule comme ci-dessous, alors c'est beaucoup trop long. Comme décrit ci-dessus, il y a de grandes quantités de données à exporter.

 foreach (dataContainer elt in Liste) 
{

for(int b = 1; b <= 11; b++)
{
Excel.Range currentRange = outputWorksheet.Cells[Liste.IndexOf(elt)+2, b];
switch (b)
{
case 1: currentRange.Value2 = elt.ctNumber;break;
case 2: currentRange.Value2 = elt.isoType; break;
case 3: currentRange.Value2 = elt.bkgNumber; break;
case 4: currentRange.Value2 = elt.POO; break;
case 5: currentRange.Value2 = elt.POL; break;
case 6: currentRange.Value2 = elt.POD; break;
case 7: currentRange.Value2 = elt.OPE; break;
case 8: currentRange.Value2 = elt.Empty; break;
case 9: currentRange.Value2 = elt.flagOOG; break;
case 10: currentRange.Value2 = elt.teus; break;
case 11: currentRange.Value2 = elt.weight; break;
}
}
}

Comment puis-je améliorer ma façon d'exporter des données dans Excel? Sachant que je ne peux pas utiliser le fichier.csv.


Solution du problème

Si vous créez un fichier Excel autonome au lieu de mettre à jour celui actuellement affiché, la création directe du fichier à l'aide du SDK Open XML plutôt que du modèle d'objet Excel serait plus rapide - commencez à https://docs.microsoft.com/en-us/ bureau/open-xml/feuilles de calcul

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...