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 =
'.ShowSave
.ShowOpen
file_name = .filename
End With If file_name = "" Then '判断文件是否存在
DRExcel = False
Exit Function
End If Set 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() '测列数
j =
Do While xlSheet.Cells(, j) <> ""
j = j +
Loop
i =
Do While xlSheet.Cells(i, ) <> ""
i = i +
Loop
If j = Or i = Then
MsgBox "不允许导入空表!"
DRExcel = False
Exit Function
End If fd.Visible = True
fd.rows = i -
fd.Cols = j - For i = To fd.rows For j = To fd.Cols '列数
fd.TextMatrix(i - , j - ) = xlSheet.Cells(i, j)
Next j
Next i 'xlApp.Application.Visible = True xlBook.Close
xlApp.Quit '"交还控制给Excel fd.ColAlignment() = '物品代码
MsgBox "完成导入"
fd.FixedRows =
fd.FixedCols =
CD1.filename = ""
DRExcel = True
a:
End Function
二、新方法,高效把excel文件导入到MSHFlexGrid控件。这个非常高效。如下:
FGrid1.FixedCols = Dim file_name As String
file_name = ""
CD1.Flags = &H2
With CD1
.Flags = cdlOFNHideReadOnly & cdlOFNOverwritePrompt
' 设置过滤器
.Filter = "xls文档(*.xls)|*.xls|xlsx文档(*.xlsx)|*.xlsx" '只能导入xls这种文件格式
' 指定缺省的过滤器
.FilterIndex =
'.ShowSave
.ShowOpen
file_name = .filename
End With If file_name = "" Then '判断文件是否存在
MsgBox ("选择的文件已经不存在了")
Exit Sub
End If Dim excelid As Excel.Application
Set excelid = New Excel.Application
excelid.Workbooks.Open (file_name) excelid.ActiveWindow.SplitRow =
excelid.ActiveWorkbook.save
excelid.ActiveWorkbook.Close
excelid.Quit Dim CHART1 As New ADODB.Connection, chart2 As New ADODB.Recordset
CHART1.CursorLocation = adUseClient If Right(file_name, ) = ".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'"
Else
CHART1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & file_name & ";Extended Properties='Excel 8.0;HDR=Yes'"
End If
Dim rs As ADODB.Recordset
Set rs = CHART1.OpenSchema(adSchemaTables)
Dim ls_name As String
ls_name = rs.Fields().Value '取哪个sheet页数据
chart2.Open "select * From [" & ls_name & "]", CHART1, adOpenKeyset, adLockOptimistic
Set FGrid1.DataSource = chart2 Set CHART1 = Nothing
Set chart2 = Nothing
作者:王春天 2013.11.14 地址:http://www.cnblogs.com/spring_wang/p/3423105.html
VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示的更多相关文章
- excel2003和excel2007文件的创建和读取
excel2003和excel2007文件的创建和读取在项目中用的很多,首先我们要了解excel的常用组件和基本操作步骤. 常用组件如下所示: HSSFWorkbook excel的文档对象 HSSF ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
- 如何在网页中浏览和编辑DWG文件 梦想CAD控件
如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2 是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...
- jquery文件上传控件 Uploadify
(转自 http://www.cnblogs.com/mofish/archive/2012/11/30/2796698.html) 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同 ...
- 使用Uploadify(UploadiFive)多文件上传控件遇到的坑
最近项目中需要实现多文件上传功能,于是结合需求最终选择了Uploadify这一款控件来实现.相比其他控件,Uploadify具有简洁的界面,功能API基本可以解决大多数需求,又是基于jquery的,配 ...
- asp.net web常用控件FileUpload(文件上传控件)
FileUpload控件的主要中能:向指定目录上传文件,该控件包括一个文本框和一个浏览按钮. 常用的属性:FileBytes,FileContent.FileName.HasFile.PostedFi ...
- jquery文件上传控件 Uploadify 问题记录
Uploadify v3.2.1 首先引用下面的文件 <!--上传控件 uploadify--> <script type="text/javascript" s ...
- 在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件(转)
引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过“我现在可以通过WebBr ...
- FileUpload文件上传控件
1.FileUpload控件的主要功能是向指定目录上传文件.FileUpload控件不会自动上传控件,而需要设置相关的事件处理程序,然后在程序中实现文件上传. 2.FileUpload控件常见的属性 ...
随机推荐
- Statement、PreparedStatemnt、CallableStatement
第一.Statement(Statement代表一个特定的容器,来对一个特定的数据库执行语句) * 执行查询的方法 Statement=Connection.createStatement();//创 ...
- MySQL查看当前用户、存储引擎、日志
#查看MySQL的当前用户 mysql> SELECT USER(); +----------------+ | USER() | +----------------+ | root@local ...
- ViewPage+frament不预载入下一个Frament数据解决的方法
在做一个ViewPage+Frament 滑动数效果,当滑动到每一页时载入哪一页的数据,可是ViewPage会预载入下一也数据.这个问题之前做项目是一直未解决,今天找到一个方法一下子就解决的这个问题, ...
- CENTOS7更换YUM源为163源
访问地址为:http://mirrors.163.com/.help/centos.html 首先备份源: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum. ...
- Java之创建对象>7.Avoid finalizers
1.Finalizers are unpredictable, often dangerous, and generally unnecessary. 2.never do anything time ...
- django之创建第7-4个项目-配置views文件实现url传值
即:怎么实现url?name=xiaodeng&age=28等类似传值处理 1.配置views文件 # Create your views here. #coding:utf-8 from d ...
- java开发微信模板消息推送
发布时间:2018-12-12 技术:springboot+maven 概述 该demo主要涉及微信模板消息推送功能, 详细 代码下载:http://www.demodashi.com/dem ...
- C#实现多文件上传,写到文件夹中,获取文件信息以及下载文件和删除文件
前台:.js //上传附件 function uploadAttachment() { if ($("#Tipbind").attr('checked')) { var ip = ...
- 阿里云k8s服务springboot项目应用升级时出现502错误
背景 随着小步快跑.快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更.升级频率变得越来越频繁.为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式. 停机发布 ...
- 安全删除linux旧内核的方法
我们在用yum升级系统之后,希望往往会为我们保持旧的内核文件,这样以防在出现硬件或者软件冲突的时候我们能够返回到旧的内核文件继续使用,如果我们想要安全的删除旧的内核文件,可以follow下面的方法. ...