2013-03-21 135 views
0

我一直在寻找一种能够有效读取Excel文件并找到了解析下面的代码,阅读了大量的电子表格:VB.NET的OpenXML读取Excel文件

公用Sub 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()来我的字符串。传递的值是一个小整数,而实际的单元格值是一个字符串。消息框会为每个填充的单元格触发一次,所以这告诉我代码正在找到包含值的单元格;但是,我无法提取单元格的实际“内部文本”。

想法?建议?

+0

看起来这篇文章。 ([链接] http://www.codeproject.com/Articles/15593/Read-and-write-Open-XML-files-MS-Office-2007)回答我的问题,虽然我仍然需要看看我是什么我正在尝试可以用OpenXmlReader完成。任何指导将不胜感激! – 2013-03-21 21:48:57

回答

0

我找到了我的答案;我需要引用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