最近用到了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
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
建议修改成MDB,如果EXCEL文件超过5M(10M),就要经常备份XLS文件,至少2007之前是这样,不知道
2007、2010是否有改进。
你的具体用途是什么?