VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示
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控件显示相关推荐
- excel2003和excel2007文件的创建和读取
excel2003和excel2007文件的创建和读取在项目中用的很多,首先我们要了解excel的常用组件和基本操作步骤. 常用组件如下所示: HSSFWorkbook excel的文档对象HSSFS ...
- mysql 批量导入sql_MySQL高效导入多个.sql文件方法详解
MySQL有多种方法导入多个.sql文件(里面是sql语句),常用的有两个命令:mysql和source. 但是这两个命令的导入效率差别很大,具体请看最后的比较. (还有sqlimport和LOAD ...
- VB.NET基于ReportViewer控件显示RDLC文件学习总结。
最近一直在学习VB.NET中的ReportViewer控件绑定RDLC文件显示的内容,VB.NET对于这一块的教程并不如C#多,所以好多时候需要模仿C#,今天特地写一个总结,供后边的学习者以供借鉴(本 ...
- 做VB的,经常注册和反注册OCX控件和DLL链
做VB的,经常注册和反注册OCX控件和DLL链 但是,每次都要 "开始"--"运行" --"regsvr32 C:\********\******.o ...
- C# WinForm 文件夹选择控件 folderBrowserDialog 的应用实例
上期文章<使用 C# 修改文件创建时间>中有文件夹选择控件,但并没有提到如何使用,所以这次主要是针对这个控件讲下如何使用的一些细节.就两个动作,请看下图: 1.从工具箱中"双击& ...
- 使用Apache文件上传控件实现文件上传
本文使用Apache提供的第三方文件上传控件进行文件上传 1.导入第三方commons-fileupload-1.3.2.jar和commons-io-2.5.jar包 2.页面form标签需添加en ...
- jquery文件上传控件 Uploadify
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...
- 使用jquery文件上传控件Uploadify来异步上传图片
1.项目中需要图片的异步上传,度娘之后发现有一个插件可以完成这个需求,即是:Uploadify 下面是这个异步上传的插件的一个简单介绍: 基于jquery的文件上传控件,支持ajax无刷新上传,多个文 ...
- 组件开发之ASP.NET中集成资源文件的服务器端控件开发
一个ASP.net中的控件,往往要使用到一些图片.CSS和脚本JS文件等等,如果要求用户把这些资源文件自己复制到网站目录中,往往让人感觉很麻烦很不专业.如果能够在控件中包含这些资源,能够自动引用,不单 ...
最新文章
- 2021年大数据HBase(十二):Apache Phoenix 二级索引
- 深度学习处在大爆炸时代的边缘
- 云计算 码率适配限速_面向大型集团公司的云平台架构
- 阿里工程师总结的《MySQL 笔记高清 PDF 》 开放下载
- 多帧点云数据拼接合并_多工作簿数据合并,还在手动复制粘贴就out了,用批处理一键搞定...
- Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)
- K8S精华问答 | Kubernetes集群常见问题
- 又到了充钱的时候!苹果AirPods 3最快下月发布
- 【ES】es 查询超时listener timeout after waiting for [60000] ms
- [转载]在ASP.NET中使用Microsoft Word文档
- 2.技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化...
- 如何在MyEclipse 中将工程已经删除的文件恢复过来
- 多重继承有时候确实有必要
- java 连接hadoop集群_hadoop集群访问——Hadoop客户端访问、Java API访问
- 2018年百度算法与标准汇总
- 通俗易懂的AI算法原理
- 人民币金额大写转小写
- java int 转 object_在java上将int转换为Object
- 数据可视化8_数据分析的一般流程
- AurixDevStudio集成MCAL
热门文章
- python画直方图代码-python plotly画柱状图代码实例
- python安装教程3.8.5-Python 3.8.5下载
- python语言可以应用在哪些方面-Python语言的应用领域主要有哪些?
- python简单代码表白-python浪漫表白源码
- python代码大全表解释-python操作列表的函数使用代码详解
- 学python多长时间能够精通-学Python多长时间?老男孩Python技术培训
- java和python的比较-Python和Java就业前景对比
- python基础常用语句-Python语言的一些基本常用语句
- python编程从入门到实践课后题答案-python编程:从入门到实践习题5-8~5-11
- python入门教程共四本书籍-关于 Python 的经典入门书籍有哪些?