一:写在之前
其实我还在写erlang,vb什么的才和我没关系
,要不是为了妹子,才不会看
二:关于vb的看法
感觉vb的资料非常乱,由于时间太久,而且有vb,vb.net的分别,需要花费更多的时间去筛选资料
就比如查找读取excel,查找出大量..2000年多有的资料,简直惨..接口已经变过了..
三:vb 基本的读取excel方法
Dim xlapp As Excel.Application 'Excel对象 Dim xlbook As Excel.Workbook '工作簿 Dim xlsheet As Excel.Worksheet '工作表 Private Sub Excel_Out_Click() Dim i,j As Integer Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象 Set xlbook = xlapp.Workbooks.Open(App.Path & "/test.xls") '打开已经存在的test.xls工件簿文件 xlapp.Visible = True '设置EXCEL对象可见(或不可见) Set xlsheet = xlbook.Worksheets(1) '设置活动工作表'' xlsheet.Cells(i,j) = j '当前工作簿第一页的第I行第J列
这种方法用的很多,但是效率十分有问题,尝试过xlsheet.Cells读取3000个格子,效率非常慢
四:利用ADO读取excel
先吐槽一下,这些资料真难找。。。。
'需要先引入ado 库 '功能函数,读取excel '这个函数可以不用管内部的实现方法 '传入 excel名称,与excel sheet表名,'从excel中读取数据,返回dataset 'dataset 是一种数据结构,使用方法在下一个函数 Function ReadExcel(FileName As String,SheetName As String) Dim _Connectstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<FilePath>;Extended Properties=""Excel 8.0;HDR=NO;IMEX=1""" Dim excConn As New OleDb.OleDbConnection(_Connectstring.Replace("<FilePath>",FileName)) '上两行打开一个读取excel的链接 Dim mydataset As DataSet = New DataSet Using da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("SELECT * FROM [" & SheetName & "$]",excConn) Try da.Fill(mydataset,SheetName) Catch ex As Exception Console.WriteLine(ex) End Try End Using '上面一段将数据写入到一个dataset中 Return mydataset End Function '从dataset中读取一个数据 '传入上个函数返回的dataset ,sheet名, 第几行,第几列,返回数据 '用法看内部 Function ReadCell(dataset As DataSet,SheetName As String,row As Integer,col As Integer) Return dataset.Tables(SheetName).Rows(row).Item(col) End Function '下面函数包含了一个示例=——= Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click Dim ExcelDataSet As DataSet = New DataSet '调用ReadExcel 函数从excel读取到dataset ExcelDataSet = ReadExcel("D:Orders1.xls","Orders") For i = 1 To 10 For j = 1 To 2 '调用readcell 从dataset中读取某一单元格的数据 Console.WriteLine(ReadCell(ExcelDataSet,"Orders",i,j)) Next j Next i End Sub
以上是发给妹子的几个函数,前两个是功能函数,最后一个是使用列子做个备用。。