1.VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示

2.以前也有Excel导入通用功能,但速度有些慢一会把两种实现方式都提供出为参考对比。

一、原通用导入excel文件到MSHFlexGrid控件如下:

Public Function DRExcel(fd As MSHFlexGrid, CD1 As CommonDialog) As Boolean   '导入Excel文件函数  20120621孙广乐

Dim file_name As String
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.worksheet
Dim xlQuery As Excel.QueryTable
Dim r   'r为行数
Dim i, j
On Error GoTo a:
file_name = ""
fnum = FreeFile
CD1.Flags = &H2
With CD1.Flags = cdlOFNHideReadOnly & cdlOFNOverwritePrompt' 设置过滤器.Filter = "xls文档(*.xls)|*.xls|xlsx文档(*.xlsx)|*.xlsx"        '只能导入xls这种文件格式' 指定缺省的过滤器.FilterIndex = 1'.ShowSave
  .ShowOpenfile_name = .filename
End WithIf file_name = "" Then       '判断文件是否存在DRExcel = FalseExit Function
End IfSet xlApp = CreateObject("Excel.Application")
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlBook = xlApp.Workbooks().Add
Set xlSheet = xlBook.Worksheets("sheet1")
'xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open(file_name)
Set xlSheet = xlBook.Worksheets(1)'测列数
j = 1
Do While xlSheet.Cells(1, j) <> ""j = j + 1
Loop
i = 1
Do While xlSheet.Cells(i, 1) <> ""i = i + 1
Loop
If j = 1 Or i = 1 ThenMsgBox "不允许导入空表!"DRExcel = FalseExit Function
End Iffd.Visible = True
fd.rows = i - 1
fd.Cols = j - 1For i = 1 To fd.rowsFor j = 1 To fd.Cols  '列数fd.TextMatrix(i - 1, j - 1) = xlSheet.Cells(i, j)Next j
Next i'xlApp.Application.Visible = True

xlBook.Close
xlApp.Quit   '"交还控制给Excel

fd.ColAlignment(0) = 0 '物品代码
MsgBox "完成导入"
fd.FixedRows = 1
fd.FixedCols = 0
CD1.filename = ""
DRExcel = True
a:
End Function

二、新方法,高效把excel文件导入到MSHFlexGrid控件。这个非常高效。如下:

FGrid1.FixedCols = 0Dim file_name As String
file_name = ""
CD1.Flags = &H2
With CD1.Flags = cdlOFNHideReadOnly & cdlOFNOverwritePrompt' 设置过滤器.Filter = "xls文档(*.xls)|*.xls|xlsx文档(*.xlsx)|*.xlsx"        '只能导入xls这种文件格式' 指定缺省的过滤器.FilterIndex = 1'.ShowSave
  .ShowOpenfile_name = .filename
End WithIf file_name = "" Then       '判断文件是否存在MsgBox ("选择的文件已经不存在了")Exit Sub
End IfDim excelid As Excel.ApplicationSet excelid = New Excel.Applicationexcelid.Workbooks.Open (file_name)excelid.ActiveWindow.SplitRow = 0excelid.ActiveWorkbook.saveexcelid.ActiveWorkbook.Closeexcelid.QuitDim CHART1 As New ADODB.Connection, chart2 As New ADODB.RecordsetCHART1.CursorLocation = adUseClientIf Right(file_name, 5) = ".xlsx" Then 'excel2007版本以上CHART1.Open "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source=" & file_name & ";Extended Properties='Excel 12.0;HDR=Yes'"ElseCHART1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & file_name & ";Extended Properties='Excel 8.0;HDR=Yes'"End IfDim rs As ADODB.RecordsetSet rs = CHART1.OpenSchema(adSchemaTables)Dim ls_name As Stringls_name = rs.Fields(2).Value '取哪个sheet页数据chart2.Open "select * From [" & ls_name & "]", CHART1, adOpenKeyset, adLockOptimisticSet FGrid1.DataSource = chart2Set CHART1 = Nothing
Set chart2 = Nothing

作者:王春天  2013.11.14  地址:http://www.cnblogs.com/spring_wang/p/3423105.html

转载于:https://www.cnblogs.com/spring_wang/p/3423105.html

VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示相关推荐

  1. excel2003和excel2007文件的创建和读取

    excel2003和excel2007文件的创建和读取在项目中用的很多,首先我们要了解excel的常用组件和基本操作步骤. 常用组件如下所示: HSSFWorkbook excel的文档对象HSSFS ...

  2. mysql 批量导入sql_MySQL高效导入多个.sql文件方法详解

    MySQL有多种方法导入多个.sql文件(里面是sql语句),常用的有两个命令:mysql和source. 但是这两个命令的导入效率差别很大,具体请看最后的比较. (还有sqlimport和LOAD ...

  3. VB.NET基于ReportViewer控件显示RDLC文件学习总结。

    最近一直在学习VB.NET中的ReportViewer控件绑定RDLC文件显示的内容,VB.NET对于这一块的教程并不如C#多,所以好多时候需要模仿C#,今天特地写一个总结,供后边的学习者以供借鉴(本 ...

  4. 做VB的,经常注册和反注册OCX控件和DLL链

    做VB的,经常注册和反注册OCX控件和DLL链 但是,每次都要 "开始"--"运行" --"regsvr32 C:\********\******.o ...

  5. C# WinForm 文件夹选择控件 folderBrowserDialog 的应用实例

    上期文章<使用 C# 修改文件创建时间>中有文件夹选择控件,但并没有提到如何使用,所以这次主要是针对这个控件讲下如何使用的一些细节.就两个动作,请看下图: 1.从工具箱中"双击& ...

  6. 使用Apache文件上传控件实现文件上传

    本文使用Apache提供的第三方文件上传控件进行文件上传 1.导入第三方commons-fileupload-1.3.2.jar和commons-io-2.5.jar包 2.页面form标签需添加en ...

  7. jquery文件上传控件 Uploadify

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...

  8. 使用jquery文件上传控件Uploadify来异步上传图片

    1.项目中需要图片的异步上传,度娘之后发现有一个插件可以完成这个需求,即是:Uploadify 下面是这个异步上传的插件的一个简单介绍: 基于jquery的文件上传控件,支持ajax无刷新上传,多个文 ...

  9. 组件开发之ASP.NET中集成资源文件的服务器端控件开发

    一个ASP.net中的控件,往往要使用到一些图片.CSS和脚本JS文件等等,如果要求用户把这些资源文件自己复制到网站目录中,往往让人感觉很麻烦很不专业.如果能够在控件中包含这些资源,能够自动引用,不单 ...

最新文章

  1. 2021年大数据HBase(十二):Apache Phoenix 二级索引
  2. 深度学习处在大爆炸时代的边缘
  3. 云计算 码率适配限速_面向大型集团公司的云平台架构
  4. 阿里工程师总结的《MySQL 笔记高清 PDF 》 开放下载
  5. 多帧点云数据拼接合并_多工作簿数据合并,还在手动复制粘贴就out了,用批处理一键搞定...
  6. Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)
  7. K8S精华问答 | Kubernetes集群常见问题
  8. 又到了充钱的时候!苹果AirPods 3最快下月发布
  9. 【ES】es 查询超时listener timeout after waiting for [60000] ms
  10. [转载]在ASP.NET中使用Microsoft Word文档
  11. 2.技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化...
  12. 如何在MyEclipse 中将工程已经删除的文件恢复过来
  13. 多重继承有时候确实有必要
  14. java 连接hadoop集群_hadoop集群访问——Hadoop客户端访问、Java API访问
  15. 2018年百度算法与标准汇总
  16. 通俗易懂的AI算法原理
  17. 人民币金额大写转小写
  18. java int 转 object_在java上将int转换为Object
  19. 数据可视化8_数据分析的一般流程
  20. AurixDevStudio集成MCAL

热门文章

  1. python画直方图代码-python plotly画柱状图代码实例
  2. python安装教程3.8.5-Python 3.8.5下载
  3. python语言可以应用在哪些方面-Python语言的应用领域主要有哪些?
  4. python简单代码表白-python浪漫表白源码
  5. python代码大全表解释-python操作列表的函数使用代码详解
  6. 学python多长时间能够精通-学Python多长时间?老男孩Python技术培训
  7. java和python的比较-Python和Java就业前景对比
  8. python基础常用语句-Python语言的一些基本常用语句
  9. python编程从入门到实践课后题答案-python编程:从入门到实践习题5-8~5-11
  10. python入门教程共四本书籍-关于 Python 的经典入门书籍有哪些?