vb.net程序直接读取Excel文件内容
2014-07-23 23:20
567 查看
Public Function ExcelToDataTable_Copy(ByVal xlsFilaName As String, ByRef ErrMsg As String) As DataTable
Try
Dim SheetName As String
Dim dt As DataTable
dt = New DataTable
Dim sExcelFile As String
sExcelFile = xlsFilaName
Dim sConnectionString As String
Dim TmpFileName As String
Dim strFilePath As String
Dim myExcel As Excel.Application = New Excel.Application
Dim missing As Object = System.Reflection.Missing.Value
strFilePath = “ddd”
myExcel.Application.Workbooks.Open(strFilePath)
Dim mybook As Excel.Workbook = myExcel.Workbooks(1)
Dim sheet As Excel.Worksheet = mybook.Sheets(1)
Dim strSheetName As String = sheet.Name
mybook.Close()
myExcel.Quit()
mybook = Nothing
myExcel = Nothing
TmpFileName = I_FILE_NAME.Text.Trim.Substring(I_FILE_NAME.Text.LastIndexOf("."), I_FILE_NAME.Text.Length - I_FILE_NAME.Text.LastIndexOf("."))
'Excel2007
If TmpFileName.Equals(".xlsx") Then
sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sExcelFile & "; Extended Properties='Excel 12.0;HDR=NO;IMEX=1;'"
'Excel2003
ElseIf TmpFileName.Equals(".xls") Then
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sExcelFile & "; Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'"
End If
Dim connection As OleDb.OleDbConnection
connection = New OleDb.OleDbConnection(sConnectionString)
connection.Open()
dt = connection.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
Dim sql_select_commands As String
sql_select_commands = "Select * from [" + strSheetName + "$]"
Dim adp As OleDb.OleDbDataAdapter
adp = New OleDb.OleDbDataAdapter(sql_select_commands, connection)
Dim ds As Data.DataSet
ds = New Data.DataSet()
adp.Fill(ds, strSheetName)
dt = ds.Tables(0)
If (connection.State = ConnectionState.Open) Then
connection.Close()
End If
ErrMsg = CheckTableInfo(dt)
Return dt
Catch ex As Exception
Select Case Err.Number
Case Else
MSG = Trim(GetMsgDesc(10024)) & " = " & Str(Err.Number) & vbCrLf & Trim(GetMsgDesc(10025)) & " = " & Err.Source
MSG = MSG & vbCrLf & Trim(GetMsgDesc(10026)) & vbCrLf & Err.Description
MsgBox(MSG, MsgBoxStyle.Critical)
End Select
Err.Clear()
BWrite(ex.Message.ToString())
End Try
End Function
Try
Dim SheetName As String
Dim dt As DataTable
dt = New DataTable
Dim sExcelFile As String
sExcelFile = xlsFilaName
Dim sConnectionString As String
Dim TmpFileName As String
Dim strFilePath As String
Dim myExcel As Excel.Application = New Excel.Application
Dim missing As Object = System.Reflection.Missing.Value
strFilePath = “ddd”
myExcel.Application.Workbooks.Open(strFilePath)
Dim mybook As Excel.Workbook = myExcel.Workbooks(1)
Dim sheet As Excel.Worksheet = mybook.Sheets(1)
Dim strSheetName As String = sheet.Name
mybook.Close()
myExcel.Quit()
mybook = Nothing
myExcel = Nothing
TmpFileName = I_FILE_NAME.Text.Trim.Substring(I_FILE_NAME.Text.LastIndexOf("."), I_FILE_NAME.Text.Length - I_FILE_NAME.Text.LastIndexOf("."))
'Excel2007
If TmpFileName.Equals(".xlsx") Then
sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sExcelFile & "; Extended Properties='Excel 12.0;HDR=NO;IMEX=1;'"
'Excel2003
ElseIf TmpFileName.Equals(".xls") Then
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sExcelFile & "; Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'"
End If
Dim connection As OleDb.OleDbConnection
connection = New OleDb.OleDbConnection(sConnectionString)
connection.Open()
dt = connection.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
Dim sql_select_commands As String
sql_select_commands = "Select * from [" + strSheetName + "$]"
Dim adp As OleDb.OleDbDataAdapter
adp = New OleDb.OleDbDataAdapter(sql_select_commands, connection)
Dim ds As Data.DataSet
ds = New Data.DataSet()
adp.Fill(ds, strSheetName)
dt = ds.Tables(0)
If (connection.State = ConnectionState.Open) Then
connection.Close()
End If
ErrMsg = CheckTableInfo(dt)
Return dt
Catch ex As Exception
Select Case Err.Number
Case Else
MSG = Trim(GetMsgDesc(10024)) & " = " & Str(Err.Number) & vbCrLf & Trim(GetMsgDesc(10025)) & " = " & Err.Source
MSG = MSG & vbCrLf & Trim(GetMsgDesc(10026)) & vbCrLf & Err.Description
MsgBox(MSG, MsgBoxStyle.Critical)
End Select
Err.Clear()
BWrite(ex.Message.ToString())
End Try
End Function
相关文章推荐
- VB.NET 打开Excel文件,读取Excel内容,添加到DataGridView中并显示
- VB.NET 打开Excel文件,读取Excel内容,添加到DataGridView中并显示
- ASP.net读取EXCEL文件将内容存储到GridView中
- 今天在ASP.NET上在写一个读取EXCEL文件内容的功能,但是IE8貌似把文件路径给屏蔽了,在IE6下面读取正常!有啥好办法?
- ASP.NET(C#)读取Excel的文件内容
- [VB.NET]高分:求一个在vb.net2005中用ado.net读取excel文件并将其导入到Acess的示例!
- Asp.Net读取并显示Excel文件中的内容(OleDb方式)
- ASP.NET FileUpload不经保存,直接读取上传文件的内容
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- ASP.NET(C#)读取Excel的文件内容
- vb.net 读取EXCEL文件中的数据
- ASP.NET FileUpload不经保存,直接读取上传文件的内容
- vb.net读取dbf、Excel、Access数据文件
- VB.NET 从XML文件中读取内容到JSON
- ASP.NET(C#)读取Excel的文件内容
- VB.NET读取EXCEL 里面的内容
- asp.net 上传XML,txt 直接读取文件内容
- ASP.NET(C#)读取Excel的文件内容
- vb.net读取xml文件中的节点内容
- flask上传excel文件,无须存储,直接读取内容