Excel ファイルを効果的に読み取る方法を探していたところ、大きなスプレッドシートを解析して読み取るための次のコードが見つかりました。
Public 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() を文字列に割り当てる場所です。渡される値は小さな整数ですが、実際のセル値は文字列です。メッセージ ボックスは、入力されたセルごとに 1 回起動するため、コードが値を含むセルを見つけていることがわかります。ただし、セルの実際の「内部テキスト」を抽出できません。
考え?提案?