【问题标题】:VB.NET OpenXML to Read Excel FileVB.NET OpenXML 读取 Excel 文件
【发布时间】:2013-03-21 16:53:29
【问题描述】:

我一直在寻找一种有效读取 Excel 文件的方法,并找到了以下用于解析和读取大型电子表格的代码:

公共子 ExcelProcessing()

    Dim strDoc As String = "C:\Documents and Settings\Practice.xlsx"
    Dim txt As String

    Dim spreadsheetDocument As SpreadsheetDocument = spreadsheetDocument.Open(strDoc, False)

    Dim workbookPart As WorkbookPart = spreadsheetDocument.WorkbookPart
    Dim worksheetPart As WorksheetPart = workbookPart.WorksheetParts.First()

    Dim reader As OpenXmlReader = OpenXmlReader.Create(worksheetPart)
    Dim text As String
    While reader.Read()

        If reader.ElementType = GetType(CellValue) Then


            text = reader.GetText()
            MessageBox.Show(text)

        End If


    End While

问题是我将 reader.GetText() 分配给我的字符串。传递的值是一个小整数,而实际的单元格值是一个字符串。消息框为每个填充的单元格触发一次,因此这告诉我代码正在查找包含值的单元格;但是,我无法提取单元格的实际“内部文本”。

想法?有什么建议吗?

【问题讨论】:

  • 出现这篇文章。 ([链接]codeproject.com/Articles/15593/…我的问题,虽然我仍然需要看看我正在尝试的内容是否可以通过 OpenXmlReader 完成。任何指导将不胜感激!

标签: vb.net openxml vb.net-2010 openxml-sdk xmlreader


【解决方案1】:

我找到了答案;我需要引用 sharedstringtable 并从那里拉出内部文本:

    Dim strDoc As String = "C:\Documents and Settings\Practice.xlsx"
    Dim txt As String

    Dim spreadsheetDocument As SpreadsheetDocument = spreadsheetDocument.Open(strDoc, False)

    Dim workbookPart As WorkbookPart = spreadsheetDocument.WorkbookPart
    Dim shareStringPart As SharedStringTablePart = workbookPart.SharedStringTablePart


    For Each Item As SharedStringItem In shareStringPart.SharedStringTable.Elements(Of SharedStringItem)()

        MessageBox.Show(Item.InnerText)

    Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2020-06-29
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多