【发布时间】:2020-06-15 19:31:14
【问题描述】:
使用 introp 将 Excel 打开到 vb.net 后崩溃
Followig 是我用于从 excel 导入数据的代码
Dim misValue As System.Reflection.Missing
Dim tbl As New System.Data.DataTable
Dim xlApp As nExcel.Application
Dim xlWorkBook As nExcel.Workbook
Dim xlWorkSheet As nExcel.Worksheet
xlApp = New nExcel.Application
Try
xlWorkbook = xlApp.Workbooks.Open(sFilePath)
Dim issheetext As Boolean
Dim sheet As nExcel.Worksheet
For Each sheet In xlWorkbook.Sheets
If sheet.Name.Equals(sSheetname) Then
issheetext = True
Exit For
End If
Next
If issheetext Then
xlWorkSheet = DirectCast(xlWorkbook.Sheets(sSheetname), nExcel.Worksheet)
' get range object
Dim myRange As nExcel.Range = DirectCast(xlWorkSheet.get_Range("A1:BZ102451"), nExcel.Range)
For i As Integer = 0 To myRange.Columns.Count
Dim cellval As Object
cellval = DirectCast(myRange.Cells(1, i + 1), Object)
tbl.Columns.Add(cellval.ToString(), cellval.GetType())
Next
For i As Integer = 0 To myRange.Rows.Count - 2
tbl.Rows.Add()
For j As Integer = 0 To myRange.Columns.Count - 1
Dim CellValue As Object = DirectCast(myRange.Cells(2 + i, j + 1).Value2, Object)
tbl.Rows(i)(j) = CellValue
Next
Next
End If
Catch ex As Exception
Finally
Try
releaseObject(xlWorkSheet)
releaseObject(xlWorkbook)
releaseObject(xlApp)
Catch
End Try
End Try
Return tbl
但是当调试器交叉xlWorkbook = xlApp.Workbooks.Open(sFilePath)
它告诉我
在异常情况下它显示给我
远程过程调用失败。 (HRESULT 异常:0x800706BE)
提前致谢
【问题讨论】:
-
什么是 nExcel?
-
它是 introp 对象的名称,如 import nExcel=Microsoft.office.introp.excel
-
如何让应用在打开前可见,看看是否有错误?
-
你能解释一下如何