希望那位给出个正确的语句.
换一个连接语句就出现一个新的问题哪
什么对象未实例化(肯定是con.constring有问题了)
什么是不是预期的格式
什么错误信息没有注册
我的电脑装的是execl2007的
VB.net 读取execl2007正确的连接字符串语句 (在网上看到各种各样的连接语句,层出不穷)
答案:2 悬赏:70 手机版
解决时间 2021-03-07 06:20
- 提问者网友:疯孩纸
- 2021-03-07 02:23
最佳答案
- 五星知识达人网友:人類模型
- 2021-03-07 03:22
嗯,是要这样的,你先确保添加了Excel 2007的引用
在解决资源管理器中--右键引用-添加引用-选择Com选项卡- 找到Microsoft Excel12.0 Object library。确定添加
然后就是写代码了。这是一个将EXCEl表格导入datagridview控件的过程函数!!
Public Sub EcxelToDataGridView(ByVal filePath, ByVal dgv) '传入excel所在路径,和需要加载到的datagridview控件名
Dim conn As New OleDbConnection
Dim strExcel As String
Dim filename As String = filePath
suffix = Mid(filename, InStr(filename, ".") + 1, filename.Length()) '获取需要导入的EXCEL表格是什么格式,如果是2003,就调用8.0,如果是2007就调用12.0.
If suffix = "xls" Then
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=YES;IMEX=1'" '调用oledb连接,并将Excel表格中的首行做为标题行
ElseIf suffix = "xlsx" Then
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + filePath + ";Extended Properties ='Excel 12.0;HDR=YES;IMEX=1'" '调用oledb连接,并将Excel表格中的首行做为标题行
Else
MessageBox.Show("有错,请重试,或联系管理员!")
End If
conn.Open()
Dim ds As New DataSet '定义数据集
Dim myCommand As New OleDbDataAdapter
strExcel = "select * from [sheet1]" '需要读取哪个sheet,其实这里可以修改,或者用选择方式来改!
myCommand = New OleDbDataAdapter(strExcel, conn)
ds = New DataSet()
myCommand.Fill(ds, "tableset") '填充到datagridview的控件中!
dgv.DataSource = ds.Tables(0)
conn.Close()
End Sub
调用可以这样,
EcxelToDataGridView("F:\zqs\我的文档\Visual Studio 2005\Projects\批量更新客户基础档案\批量更新客户基础档案\bin\Debug\客户档案批量更新模板.xls", DataGridView1)
这是我简化后修改过的,如果不明白,hi我,加企鹅!
在解决资源管理器中--右键引用-添加引用-选择Com选项卡- 找到Microsoft Excel12.0 Object library。确定添加
然后就是写代码了。这是一个将EXCEl表格导入datagridview控件的过程函数!!
Public Sub EcxelToDataGridView(ByVal filePath, ByVal dgv) '传入excel所在路径,和需要加载到的datagridview控件名
Dim conn As New OleDbConnection
Dim strExcel As String
Dim filename As String = filePath
suffix = Mid(filename, InStr(filename, ".") + 1, filename.Length()) '获取需要导入的EXCEL表格是什么格式,如果是2003,就调用8.0,如果是2007就调用12.0.
If suffix = "xls" Then
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=YES;IMEX=1'" '调用oledb连接,并将Excel表格中的首行做为标题行
ElseIf suffix = "xlsx" Then
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + filePath + ";Extended Properties ='Excel 12.0;HDR=YES;IMEX=1'" '调用oledb连接,并将Excel表格中的首行做为标题行
Else
MessageBox.Show("有错,请重试,或联系管理员!")
End If
conn.Open()
Dim ds As New DataSet '定义数据集
Dim myCommand As New OleDbDataAdapter
strExcel = "select * from [sheet1]" '需要读取哪个sheet,其实这里可以修改,或者用选择方式来改!
myCommand = New OleDbDataAdapter(strExcel, conn)
ds = New DataSet()
myCommand.Fill(ds, "tableset") '填充到datagridview的控件中!
dgv.DataSource = ds.Tables(0)
conn.Close()
End Sub
调用可以这样,
EcxelToDataGridView("F:\zqs\我的文档\Visual Studio 2005\Projects\批量更新客户基础档案\批量更新客户基础档案\bin\Debug\客户档案批量更新模板.xls", DataGridView1)
这是我简化后修改过的,如果不明白,hi我,加企鹅!
全部回答
- 1楼网友:千夜
- 2021-03-07 04:45
我是来看评论的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯