ich brauche, um verschiedene Dinge zu tun, basierend auf welches Feld (Spalte) die Daten in ist.Wie kann ich die richtige Spalte angeben?
For Each row As DocumentFormat.OpenXml.Spreadsheet.Row In
worksheet.Descendants(Of DocumentFormat.OpenXml.Spreadsheet.Row)
For Each cell As DocumentFormat.OpenXml.Spreadsheet.Cell In row
Select Case True
Case cell.CellReference.Value Like "C*"
'if this cell is in column C
Case cell.CellReference.Value Like "A*"
'if this cell is in column A
Case Else
End Select
Next
Next
Dies funktioniert gut, solange es nicht mehr als 26 Felder in einer bestimmten Tabelle.
Wie stelle ich sicher, dass mein Like "A*"
nicht auf Spalte AA, AB, etc. reagiert?
Beachten Sie, dass das OpenXML-SDK immer eine vollständige Zellreferenz für den .cellreference.value und nicht nur die Spalte zurückgibt. Und ich muss angeben, dass ich nicht versuche, jede Spalte größer als 26 zu werfen, aber ich versuche sicherzustellen, dass ich eine bestimmte Spalte angeben. Es ist möglich, dass die untersuchte Spalte abhängig von der Firma, die das spezifische Quellenblatt erstellt hat, möglicherweise AA oder AB wird. Ich habe auf eine Eigenschaft gehofft, oder, anders gesagt, wie andere Leute gelernt haben, auf bestimmte Spalten in openxml zu verweisen.
Können Sie die Spalte aus der Zelle abrufen? – ChrisF
@ChrisF Vielen Dank. Soweit ich weiß, ist die einzige Möglichkeit, die Spalte zu erhalten, der 'cellreference.value', der eine Zeichenkette zurückgibt. Wenn es einen anderen Weg gibt, die Referenz zu bekommen, vielleicht in einem anderen Format, scheint es nicht in MSDN dokumentiert zu sein. – CWilson
Ich habe nicht an die Daten gedacht, sondern nur den Spaltenbereich der Referenz. – ChrisF