如何将Excel电子表格导入Visual Basic应用程序

时间:2009-10-28 09:44:11

标签: vb.net excel

我必须在Visual Basic.Net中编写一个应用程序,它将打开一个excel文件,通过内容运行导出测试文件进行处理。

该应用程序对我很有用(Windows 7)但转移到WinXP PC时出现以下错误:HResult 0X800A03EC

我可以通过使Excel应用程序可见来复制此错误,因此它似乎是一个无法访问该文件的问题,因为它是打开的。尝试打开工作簿时发生错误。

原始代码

    Dim excel As Excel.Application
    Dim wb As Excel.Workbook
    excel = New Excel.Application
    excel.Visible = False
    excel.UserControl = False
    wb = excel.Workbooks.Open(FileLocation)
    ws = wb.Worksheets(1)
    ws.Activate()

要复制错误的代码

    Dim excel As Excel.Application
    Dim wb As Excel.Workbook
    excel = New Excel.Application
    excel.Visible = True
    excel.UserControl = False
    wb = excel.Workbooks.Open(FileLocation)
    ws = wb.Worksheets(1)
    ws.Activate()

1 个答案:

答案 0 :(得分:1)

Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
 .Provider = "Microsoft.Jet.OLEDB.4.0"
 .ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=Excel 8.0;"
  .Open
 End With

这是您连接数据库的方式。选择将其读入DataSet或DataTable的方法。

除非完全需要,否则不要使用互操作我发现这种方式使用OLE连接效果最好,而且速度更快。然后你在前面有所有数据来做你喜欢的事情,你不需要在后面运行MS Excel,它有凌乱的COM对象。