如何指定正确的列?

时间:2016-10-25 15:12:43

标签: .net spreadsheet openxml-sdk

我需要根据数据所在的字段(列)做不同的事情。

            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

只要给定电子表格中的字段不超过26个,这就很有效。

如何确保我的Like "A*"对AA,AB等列没有反应?

请记住,OpenXML SDK始终返回.cellreference.value的完整单元格引用,而不仅仅是列。 而且我需要指明我不是要试图批量抛出任何大于26的列,但我试图确保指定一个特定的列。根据创建特定源表的公司,经过详细审查的列可能最终为AA或AB。我希望找到一个属性,或者禁止其他人如何学会在openxml中引用特定的列。

1 个答案:

答案 0 :(得分:2)

在您要匹配的列字母后面添加#会告诉匹配器在字母后面必须有一个数字。如果该列实际为A,则会阻止您检查AA匹配。

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 cell.CellReference.Value Like "AA#*"
    'if this cell is in column AA
    Case Else
End Select

documentation开始,#将匹配"任何单个数字(0-9)"。