2017-10-02 3 views
0

Ich habe unter Bedingung in meinem Code, wo der Wert der Zelle mit der Spalte Nummer bekommen.Wie Excel Zellenwert erhalten, indem Sie den Spaltennamen in C# mit NPOI verwenden

Aber ich würde Zellen anhand von Spaltennamen Werte zuweisen, da die Werte, die ich aus einem Array zuweisen, die Spaltennamen im Array nicht in der gleichen Reihenfolge wie Spaltenüberschriften in Excel-Tabelle sind.

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

Kann jemand bitte lassen Sie mich wissen, wie kann ich die Zellenwerte erhalten, indem mit Spaltennamen

Antwort

0

Das ist ein bisschen eine große Frage ohne die Möglichkeit, Beispiele für die Daten sehen Sie arbeiten Mit oder wie möchten Sie das Endergebnis, aber hier sind einige Ideen, um loszulegen:

Sie könnten separate Bezeichnungen für jede Spalte und sortieren Sie Ihre Daten nach diesen Spalten in einer bestimmten Reihenfolge, die Integrität über das Blatt behält. Dies könnte erreicht werden, indem die erste Zeile gelesen wird und jeder Spalte möglicherweise eine Variable zugewiesen wird.

oder

Sie könnten möglicherweise beachten Sie, welche Spalten enthalten, welche Informationen und bestellen Sie Ihre Informationen in einer Datenstruktur Auch als binäre Suchbaum oder Hash, die Daten zu organisieren und ihre Struktur zu bewahren.

0

Ich empfehle Ihnen, NPOI zu leeren und stattdessen EPPlus zu verwenden. Ich verschwendete 3 Tage, um einige Excel-Erstellung mit NPOI zu automatisieren, nur um zu entdecken, dass zum Hinzufügen einer Spalte ich jede Zelle manuell verschieben und leere Zelle verwalten muss, auf der NPOI Null-Objekte zurückgibt.

In EPPlus woule es einfach sein wie das

worksheet.Cells["columnname"] 
0

Obwohl dies einen Monat alt ist, ich lief auch in der Frage der eine Spaltennamen Spaltenposition Umwandlung (und umgekehrt) in NPOI.

Die Antwort in diesem Beitrag gefunden: How to get the Excel Cell value by address (A1, A2) using NPOI mit NPOI.SS.Util.CellReference.

Mit CellReference können Sie in beide Richtungen konvertieren. Sie können eine String-Zellreferenz (z. B. "AA1") übergeben, um eine Position zu erhalten, oder eine Zeile und eine Spalte, um die Zeichenfolge (im CellRefParts-Array) abzurufen.

Verwandte Themen