我创建了一个小型 vb.net 应用程序,该应用程序连接到共享文件夹上的 excel 工作表。如果我在使用应用程序之前打开 excel 效果很好,问题是当 excel 未在后台打开时,我在尝试打开连接时收到"System.Data.OleDb.OleDbException"错误。
我已经阅读了一些关于此错误的信息,我知道它与对本地临时库的访问权限有关。所以我的问题是:1)有解决方案吗?2)对于我的Excel文件位于共享驱动器上的情况,这是最佳连接策略吗?
连接代码:
skuPath = "C:path.xlsm"
cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + skuPath + ";Extended Properties=Excel 8.0;")
q1 = "select * from [" + year + "$B4:V128]"
da = New System.Data.OleDb.OleDbDataAdapter(q1, cn)
cn.Open()
da.Fill(ds, "Table1")
cn.Close()
dt = ds.Tables(0)
我在 cn 上收到错误。打开()。
几周
前遇到了完全相同的问题。
错误是由不正确的 oledb 提供程序版本引起的,正如 Steve 所建议的那样。
试试这个:
skuPath = "C:path.xlsm"
cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + skuPath + ";Extended Properties=""Excel 12.0;HDR=Yes""")
q1 = "select * from [" + year + "$B4:V128]"
da = New System.Data.OleDb.OleDbDataAdapter(q1, cn)
cn.Open()
da.Fill(ds, "Table1")
cn.Close()
dt = ds.Tables(0)