Quelle est la meilleure façon de créer un tableau Excel avec C#?

J'ai quelques données tabulaires que j'aimerais tourner dans un tableau Excel.

Logiciel disponible:

  • .NET 4 (C#)
  • Excel 2010 (en utilisant Excel API est OK)
  • Je préfère ne pas utiliser un 3ème partie les bibliothèques

Des informations sur les données:

  • Quelques millions de lignes de
  • 5 colonnes, toutes les chaînes (très simple et régulier de la structure de la table)
  • Dans mon script, je suis actuellement à l'aide d'une Liste imbriquée structure de données, mais je peux changer que
  • Performance du script n'est pas critique

La recherche en ligne donne de nombreux résultats, et je suis confus si je dois utiliser la OleDb, des jeux d'enregistrements ADO, ou quelque chose d'autre. Certaines de ces technologies sembler excessif pour mon scénario, et certains semblent comme ils sont peut-être obsolètes.

Quelle est la façon la plus simple de faire cela?

Modifier: c'est un script que j'ai l'intention de les exécuter à partir de mon participé à de bureau.

La façon la plus simple consiste à une vie décente à la 3e partie de la bibliothèque 🙂 Regardez pour "excel automation". Il devrait y avoir quelques articles de base de connaissances sur MSDN. Être conscient que l'utilisation de l'Excel COM interops sont significativement plus lent que la plupart/tous les 3ème partie outils et s'attendre à exécuter dans un non-service de l'environnement, etc. Il peut aussi y avoir des problèmes avec les traitant de "quelques millions de lignes" (jamais essayé n'importe où près de ces limites!), même en excluant la ressource complémentaire/surcharge de temps-pas criticial n'exclut pas "un jour, aujourd'hui" 🙂
Aussi, pour un simple dump, envisager CSV -> Excel (manuellement ou via l'automatisation) au lieu d'ajouter toutes les lignes d'un-à-un-temps (un couple de millions de dollars est un couple de millions de dollars!). Une autre option est de dumping directement à XSLX (XML, il suffit de saisir un "modèle") via un streaming écrivain, etc. Bien sûr, ces étape est tout simplement pas présents dans la 3e partie de la bibliothèque.
Quelle est votre approche pour raccord de "quelques millions de lignes de" dans les 1 048 576 lignes je vois dans ma feuille de calcul Excel 2010? Je suis d'accord avec Tyler dans les dépenses de l'argent sur un tiers de la bibliothèque comme Aspose.Les cellules .NET (Développeur de l'Entreprise d'Abonnement de $899).
Merci pour les alertes sur le nombre maximal de lignes 1 million de dollars. Au moment où le tableau a 900k lignes, donc, on dirait que je viens de faire. (La Performance est très bonne d'ailleurs, même quand je créer un tableau croisé dynamique).

OriginalL'auteur RexE | 2011-01-22