2017-10-02 8 views
0

J'ai la condition ci-dessous dans mon code où la valeur de la cellule obtient en utilisant le numéro de colonne. Mais je voudrais assigner des valeurs aux cellules basées sur des noms de colonnes, car les valeurs que j'assigne d'un tableau, les noms de colonne dans le tableau ne sont pas dans le même ordre que les en-têtes de colonne dans la feuille Excel.Comment obtenir une valeur de cellule excel en utilisant le nom de la colonne dans C# en utilisant NPOI

if (row.GetCell(columnNumber) != null) 
     ICell cell = row.GetCell(columnNumber); 

Quelqu'un peut-il s'il vous plaît laissez-moi savoir comment puis-je obtenir les valeurs des cellules en utilisant colonne Noms

Répondre

0

C'est un peu une question générale sans pouvoir voir des exemples de données que vous travaillez Avec ou comment vous voulez le résultat final, mais voici quelques idées pour vous aider à démarrer:

Vous pouvez avoir des désignations séparées pour chaque colonne et trier vos données par ces colonnes dans un ordre particulier qui conserve l'intégrité de la feuille. Ceci pourrait être réalisé en lisant la première rangée et en assignant chaque colonne à une variable peut-être.

ou

Vous pourriez noter les colonnes contiennent les informations et commander vos informations dans une auch structure de données comme un arbre de recherche binaire ou hachage pour organiser les données et préserver sa structure.

0

Je vous suggère de détruire le NPOI et d'utiliser plutôt EPPlus. J'ai gaspillé 3 jours pour automatiser une création excel avec NPOI juste pour découvrir que pour AJOUTER UNE COLONNE je dois déplacer chaque cellule manuellement et gérer la cellule vide sur laquelle NPOI retourne des objets nuls.

En EPPlus il woule être simple que

worksheet.Cells["columnname"] 
0

Bien que ce soit un mois, j'ai aussi couru dans la question de la conversion d'un nom de colonne à la position de la colonne (et vice-versa) en NPOI.

trouvé la réponse dans cet article: How to get the Excel Cell value by address (A1, A2) using NPOI en utilisant NPOI.SS.Util.CellReference.

CellReference vous permet de convertir dans les deux sens. Vous pouvez transmettre une référence de cellule de chaîne (par exemple, "AA1") pour obtenir une position, ou une ligne et une colonne pour obtenir la chaîne (dans le tableau CellRefParts).