和select * from [SHEET1$]
有什么区别?
我用ADO.net读Excel数据,可是只知道文件名,如何如何获得每个sheet呢?
private void GetConnect (String filename )
{
//创建一个数据链接
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+filename + ";Extended Properties=Excel 8.0" ;
OleDbConnection myConn = new OleDbConnection ( strCon ) ;
string strCom = " SELECT * FROM [Sheet1$] " ;
try
{
myConn.Open ( ) ;
//打开数据链接,得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
//创建一个 DataSet对象
myDataSet = new DataSet ( ) ;
//得到自己的DataSet对象
myCommand.Fill ( myDataSet , "[Sheet1$]" ) ;
//关闭此数据链接
}
catch(Exception)
{
MessageBox.Show("所需文件不存在");
}
finally
{
myConn.Close ( ) ;
}
}
5 个解决方案
#1
可能要引用EXCEL,workbooks("文件名")的属性中有
#2
我要循环得到每个Sheet中的数据,用纯ADO.net
不用Excel的Application对象
不用Excel的Application对象
#3
用ADO.Net只选其中2-10行
的查询语句中的Where条件怎么写?
的查询语句中的Where条件怎么写?
#4
下面是用VB6.0写的程序.
Dim oExcel As Excel.Application '定义一个excel的应用对象
Dim oBook As Excel.Workbook '定义一个工作表
'要使用上面的两个对象必须在工程中引用excel的动态库.
Dim i As Long
set oExcel = new Excel.Application
If chkHavePassword.Value Then
'上面是判断一个check控件的值,决定要打开的excel是否有密码.
sOpenUser = Trim(txtUser.Text)
'密码一般有两个,读密码和写密码.
'分别拿到
sRPassword = Trim(txtReadPassword.Text)
sWPassword = Trim(txtWritePassword.Text)
'调用工作表的.open方法打开指定的文件,最重要的就是参数了.
'不过我想仔细看一下还是不难理解的,注意顺序和位置就可以了.
Set oBook = oExcel.Workbooks.Open(sFullFileName, , , , sRPassword, sWPassword)
'打开后你就可以直接操作这个文件了.
'下面的用法是把它另存到一个文件里,这是为了我操作方便而写的,我要用ADO直接打开这个文件,
'而ADO是不能直接打开带密码的文件,所以我另存到一个新文件中,然后再打开新的文件.
'后面的操作就看你怎么用了.这个我就不多说了.
oBook.SaveAs GetWindowsTempPath & "SaveAs.xls", , "", ""
sFullFileName = GetWindowsTempPath & "SaveAs.xls"
Else
Set oBook = oExcel.Workbooks.Open(sFullFileName)
End If
'oBook.Sheets.count 是总数
For i = 1 To oBook.Sheets.Count
'这就是你要的工作表名.
lstSheet.AddItem oBook.Sheets.Item(i).Name
Next
If lstSheet.ListCount > 0 Then lstSheet.ListIndex = 0
'最后实用结束时一定要把两个对象关闭并退出,不然会在内存中注留下来,这是不好的.
oBook.Close
oExcel.Quit
End Function
Dim oExcel As Excel.Application '定义一个excel的应用对象
Dim oBook As Excel.Workbook '定义一个工作表
'要使用上面的两个对象必须在工程中引用excel的动态库.
Dim i As Long
set oExcel = new Excel.Application
If chkHavePassword.Value Then
'上面是判断一个check控件的值,决定要打开的excel是否有密码.
sOpenUser = Trim(txtUser.Text)
'密码一般有两个,读密码和写密码.
'分别拿到
sRPassword = Trim(txtReadPassword.Text)
sWPassword = Trim(txtWritePassword.Text)
'调用工作表的.open方法打开指定的文件,最重要的就是参数了.
'不过我想仔细看一下还是不难理解的,注意顺序和位置就可以了.
Set oBook = oExcel.Workbooks.Open(sFullFileName, , , , sRPassword, sWPassword)
'打开后你就可以直接操作这个文件了.
'下面的用法是把它另存到一个文件里,这是为了我操作方便而写的,我要用ADO直接打开这个文件,
'而ADO是不能直接打开带密码的文件,所以我另存到一个新文件中,然后再打开新的文件.
'后面的操作就看你怎么用了.这个我就不多说了.
oBook.SaveAs GetWindowsTempPath & "SaveAs.xls", , "", ""
sFullFileName = GetWindowsTempPath & "SaveAs.xls"
Else
Set oBook = oExcel.Workbooks.Open(sFullFileName)
End If
'oBook.Sheets.count 是总数
For i = 1 To oBook.Sheets.Count
'这就是你要的工作表名.
lstSheet.AddItem oBook.Sheets.Item(i).Name
Next
If lstSheet.ListCount > 0 Then lstSheet.ListIndex = 0
'最后实用结束时一定要把两个对象关闭并退出,不然会在内存中注留下来,这是不好的.
oBook.Close
oExcel.Quit
End Function
#5
用ADO.Net只选其中2-10行
的查询语句中的Where条件怎么写?
SELECT * FROM [Sheet1$A2:E10]
的查询语句中的Where条件怎么写?
SELECT * FROM [Sheet1$A2:E10]
#1
可能要引用EXCEL,workbooks("文件名")的属性中有
#2
我要循环得到每个Sheet中的数据,用纯ADO.net
不用Excel的Application对象
不用Excel的Application对象
#3
用ADO.Net只选其中2-10行
的查询语句中的Where条件怎么写?
的查询语句中的Where条件怎么写?
#4
下面是用VB6.0写的程序.
Dim oExcel As Excel.Application '定义一个excel的应用对象
Dim oBook As Excel.Workbook '定义一个工作表
'要使用上面的两个对象必须在工程中引用excel的动态库.
Dim i As Long
set oExcel = new Excel.Application
If chkHavePassword.Value Then
'上面是判断一个check控件的值,决定要打开的excel是否有密码.
sOpenUser = Trim(txtUser.Text)
'密码一般有两个,读密码和写密码.
'分别拿到
sRPassword = Trim(txtReadPassword.Text)
sWPassword = Trim(txtWritePassword.Text)
'调用工作表的.open方法打开指定的文件,最重要的就是参数了.
'不过我想仔细看一下还是不难理解的,注意顺序和位置就可以了.
Set oBook = oExcel.Workbooks.Open(sFullFileName, , , , sRPassword, sWPassword)
'打开后你就可以直接操作这个文件了.
'下面的用法是把它另存到一个文件里,这是为了我操作方便而写的,我要用ADO直接打开这个文件,
'而ADO是不能直接打开带密码的文件,所以我另存到一个新文件中,然后再打开新的文件.
'后面的操作就看你怎么用了.这个我就不多说了.
oBook.SaveAs GetWindowsTempPath & "SaveAs.xls", , "", ""
sFullFileName = GetWindowsTempPath & "SaveAs.xls"
Else
Set oBook = oExcel.Workbooks.Open(sFullFileName)
End If
'oBook.Sheets.count 是总数
For i = 1 To oBook.Sheets.Count
'这就是你要的工作表名.
lstSheet.AddItem oBook.Sheets.Item(i).Name
Next
If lstSheet.ListCount > 0 Then lstSheet.ListIndex = 0
'最后实用结束时一定要把两个对象关闭并退出,不然会在内存中注留下来,这是不好的.
oBook.Close
oExcel.Quit
End Function
Dim oExcel As Excel.Application '定义一个excel的应用对象
Dim oBook As Excel.Workbook '定义一个工作表
'要使用上面的两个对象必须在工程中引用excel的动态库.
Dim i As Long
set oExcel = new Excel.Application
If chkHavePassword.Value Then
'上面是判断一个check控件的值,决定要打开的excel是否有密码.
sOpenUser = Trim(txtUser.Text)
'密码一般有两个,读密码和写密码.
'分别拿到
sRPassword = Trim(txtReadPassword.Text)
sWPassword = Trim(txtWritePassword.Text)
'调用工作表的.open方法打开指定的文件,最重要的就是参数了.
'不过我想仔细看一下还是不难理解的,注意顺序和位置就可以了.
Set oBook = oExcel.Workbooks.Open(sFullFileName, , , , sRPassword, sWPassword)
'打开后你就可以直接操作这个文件了.
'下面的用法是把它另存到一个文件里,这是为了我操作方便而写的,我要用ADO直接打开这个文件,
'而ADO是不能直接打开带密码的文件,所以我另存到一个新文件中,然后再打开新的文件.
'后面的操作就看你怎么用了.这个我就不多说了.
oBook.SaveAs GetWindowsTempPath & "SaveAs.xls", , "", ""
sFullFileName = GetWindowsTempPath & "SaveAs.xls"
Else
Set oBook = oExcel.Workbooks.Open(sFullFileName)
End If
'oBook.Sheets.count 是总数
For i = 1 To oBook.Sheets.Count
'这就是你要的工作表名.
lstSheet.AddItem oBook.Sheets.Item(i).Name
Next
If lstSheet.ListCount > 0 Then lstSheet.ListIndex = 0
'最后实用结束时一定要把两个对象关闭并退出,不然会在内存中注留下来,这是不好的.
oBook.Close
oExcel.Quit
End Function
#5
用ADO.Net只选其中2-10行
的查询语句中的Where条件怎么写?
SELECT * FROM [Sheet1$A2:E10]
的查询语句中的Where条件怎么写?
SELECT * FROM [Sheet1$A2:E10]