当前位置: 代码迷 >> 其他数据库 >> 怎么看待VB.net读取Excel文件的方法区别阿?(速度方面)
  详细解决方案

怎么看待VB.net读取Excel文件的方法区别阿?(速度方面)

热度:2664   发布时间:2013-02-26 00:00:00.0
如何看待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是否有改进。

你的具体用途是什么?
  相关解决方案