读书人

怎么看待VB.net读取Excel文件的方法区

发布时间: 2012-02-29 16:44:10 作者: rapoo

如何看待VB.net读取Excel文件的方法区别阿?(速度方面)
最近用到了EXCEL的读取
我采用的方法非常简单
Public Sub New(ByRef App As AppVarSet, ByRef FileName As String)
Dim XlBook As Excel.Workbook
Dim XlSheet As Excel.Worksheet
Dim obj(,) As Object
Dim n As Integer, m As Integer
Try
XlBook = App.OpenExcel(FileName)
Try
XlSheet = XlBook.Worksheets(1)
......
能实现了,不过速度很慢。
本来打算开始学习access,把excel改成access
结果从论坛上看到有人用OLE方法,感觉速度也挺快啊
达人们说说,到底有没有必要把excel改成access,还是改进读excel的读法阿?


Private Sub open_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles open_excel.Click
Dim path, FileName, FileExname As String
Dim conn As String
Me.OpenFileDialog1.Title = "选择Excel文件"
Me.OpenFileDialog1.Filter = "Excel 文件|*.xls*"
If Me.OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
path = System.IO.Path.GetFullPath(OpenFileDialog1.FileName)
FileName = System.IO.Path.GetFileName(OpenFileDialog1.FileName)
FileExname = System.IO.Path.GetExtension(OpenFileDialog1.FileName).ToUpper
FileName = Microsoft.VisualBasic.Left(FileName.ToUpper, FileName.Length - 4)

If FileExname = "XLSX" Then

conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"
Else
conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties='Excel 12.0;HDR=YES';"

End If


dbfconn.ConnectionString = conn
'获取数据表列表
Dim table_list As Data.DataTable = GetSchemaTable(dbfconn, "TABLE")

.......

End If
End Sub


Private Function GetSchemaTable(ByVal connection As Data.OleDb.OleDbConnection, ByVal Type As String)
' 获取数据表列表
'Type 有:"TABLE,VIEW,ACCESS TABLE,SYSTEM TABLE",

Type = Type.ToUpper
connection.Open()
Dim table_list As Data.DataTable
table_list = connection.GetOleDbSchemaTable(Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Type})
connection.Close()
Return table_list
End Function


[解决办法]

引用如何看待VB.net读取Excel文件的方法区别阿?(速度方面)

[解决办法]
建议修改成MDB,如果EXCEL文件超过5M(10M),就要经常备份XLS文件,至少2007之前是这样,不知道
2007、2010是否有改进。

你的具体用途是什么?

读书人网 >其他数据库

热点推荐