1

我一直在寻找一种有效读取 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() 分配给我的字符串。传递的值是一个小整数,而实际的单元格值是一个字符串。消息框为每个填充的单元格触发一次,因此这告诉我代码正在查找包含值的单元格;但是,我无法提取单元格的实际“内部文本”。

想法?建议?

4

1 回答 1

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
于 2013-03-22T12:10:05.937 回答