办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL
办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL
总体来说,VB的EXCEL导出效率还是蛮低的,就是一个小型化的办公用品管理软件,不再优化了。
时间紧迫,就没有从头到尾的用C#编写,从网上看见有源码就直接COPY下来的,添加了一点小功能,编译后给了朋友使用。
VB6.0编写的,蛮古老的开发语言,算是学习编程时第一个学会的语言,真是许久没有使用,有些生疏了。
上一下运行效果:



Private Sub SaveEXCEL_Click() Dim Introws As Integer '用作循环,标识MSHFlexGrid总行数
Dim Intcols As Integer '用作循环,标识MSHFlexGrid的总列数
Dim XlsApp As Excel.Application '定义EXCEL对象
Dim XlsSheet As Excel.Worksheet '定义EXCEL表
Dim XlsBook As Excel.Workbook '定义EXCEL的工作薄 Set XlsApp = CreateObject("Excel.Application") '实例化EXCEL对象
Set XlsBook = XlsApp.Workbooks.Add '加载工作薄
Set XlsSheet = XlsBook.Worksheets() '创建工作表 XlsSheet.SaveAs "D:\当前库存.xls" '保存 XlsSheet.Cells(, ) = "序号"
XlsSheet.Cells(, ) = "办公用品名称"
XlsSheet.Cells(, ) = "一级分类名称"
XlsSheet.Cells(, ) = "二级分类名称"
XlsSheet.Cells(, ) = "型号"
XlsSheet.Cells(, ) = "库存数量"
XlsSheet.Cells(, ) = "库存下限"
XlsSheet.Cells(, ) = "备注" For i = To DataGrid1.Columns.Count -
For j = To DataGrid1.ApproxCount -
DataGrid1.Col = i
On Error Resume Next
DataGrid1.Row = j
XlsSheet.Cells(j + , i + ) = DataGrid1.Columns.Item(i).Text
Next j
Next i
'释放对象
XlsApp.Visible = True
Set XlsApp = Nothing End Sub
上面的代码输出的时候总是把最后一行重复输出N多次。找到上面代码的原因了,什么也不说了上代码
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets() xlSheet.Columns.AutoFit
Me.MousePointer =
For k = To DataGrid1.Columns.Count - 'DataGrid所有的列数
xlSheet.Cells(, k + ) = DataGrid1.Columns(k).Caption '第一行为DataGrid的列标题
Next
DataGrid1.Scroll , -DataGrid1.FirstRow '导出前拉动过垂直滚动条,这个非常重要
DataGrid1.Row =
For i = To DataGrid1.ApproxCount - 'DataGrid的所有行数 For j = To DataGrid1.Columns.Count - 'DataGrid所有的列数,若将此数改小到不拉DataGrid的垂直滚动条的时候能看见的行数的时候正常
DataGrid1.Col = j
xlSheet.Cells(i + , j + ) = Adodc1.Recordset(j) 'DataGrid1.Text '从第二行显示'DataGrid的内容,这里修改成这样也可以DataGrid1.Columns.Item(j).Text
Next
If i < DataGrid1.ApproxCount - Then
DataGrid1.Row = DataGrid1.Row +
End If
Next
Me.MousePointer =
MsgBox "导出成功!"
xlApp.Visible = True
Set xlApp = Nothing 'Excel 处于当前窗体
Set xlBook = Nothing
Set xlSheet = Nothing
最终应用的方法,这样比较迅速导出,直接导出Adodc,还是从数据根源导出好一点。
Private Sub SaveEXCEL_Click()
Dim i As Long, j As Long
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Set xlsApp = New Excel.Application
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
xlsApp.Workbooks.Add 'Set xlsBook = xlsApp.Workbooks.Open(App.Path & "\filename.xls") xlsApp.Sheets("sheet1").Select
xlsApp.Cells(, ) = "序号"
xlsApp.Cells(, ) = "办公用品名称"
xlsApp.Cells(, ) = "一级分类名称"
xlsApp.Cells(, ) = "二级分类名称"
xlsApp.Cells(, ) = "型号"
xlsApp.Cells(, ) = "库存数量"
xlsApp.Cells(, ) = "库存下限"
xlsApp.Cells(, ) = "备注"
xlsApp.ActiveSheet.Range("A2").CopyFromRecordset Adodc1.Recordset If xlsApp.ActiveWorkbook.Saved = False Then
xlsApp.ActiveWorkbook.SaveAs App.Path & "\当前库存.xls"
End If
'xlsApp.Quit
Set xlsApp = Nothing End Sub
办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL的更多相关文章
- 办公用品管理系统VB——模块
'DbFunc.bas'== 标记数据库是否连接 == Private IsConnect As Boolean '== 标记执行Connect()函数后,访问数据库的次数 == Private Co ...
- VB.NET版机房收费系统---导出Excel表格
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...
- VB.NET导出Excel 轻松实现Excel的服务器与客户端交换 服务器不安装Office
说来VB.Net这个也是之前的一个项目中用到的.今天拿来总结下用途,项目需求,不让在服务器安装Office办公软件.这个也是煞费了一顿. 主要的思路就是 在导出的时候,利用DataTable做中间变量 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出
本文示例代码下载: 链接:http://pan.baidu.com/s/1jHBdgCA 密码:hzh7 ps:Vs数据库脚本在解压目录下,修改web.config数据库链接,示例代码包含:导入,导出 ...
- 超级简单POI导出Excel实战
在一般的生产管理系统都会将数据通过页面导出到Excel,这里以Java为例通过第三方开源poi进行对Excel的操作,具体操作如下 1.引入jar包依赖 这里我以maven的方式引入jar包,具体依赖 ...
- spring boot:使用poi导出excel电子表格文件(spring boot 2.3.1)
一,什么是poi? 1,poi poi是用来兼容微软文档格式的java api, 它是apache的顶级项目之一, 也是我们在生产环境中导出excel时使用最多的库 2,poi官方网站: http:/ ...
- 利用poi导出Excel
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
- Java导出excel
一.介绍 常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. ...
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...
随机推荐
- kettle查询-2
模糊匹配: 1.主数据/查询数据 2.模糊匹配 3.输出:jaro/jaro winkler/pair letters similarity(各自算法的匹配度measure value) http c ...
- JS自动微信消息轰炸
打开网页版本微信,按f12,以console台 输入下边这段代码 setInterval(function(){$('.edit_area').html('需要发送的文字');$(".edi ...
- coding规约的网站, 从sonar中链接过去
一个coding规约的网站, 从sonar中链接过去的. 挺好. https://wiki.sei.cmu.edu/confluence/display/seccode/SEI+CERT+Coding ...
- jsp篇 之 基本概念
Jsp概念: 1.jsp是什么 jsp全称Java Server Pages,是一种[动态网页开发技术]. .html文件是静态页面 .jsp 文件是动态页面 jsp页面允许我们在html代码中[嵌入 ...
- 2.8 hashlib模块
- Linux系统初始化配置项(centos7)
主机刚安装完系统,会做一些配置上的优化. 修改时区 通过命令将时区设置为亚洲/上海. timedatectl set-timezone Asia/Shanghai #centos7 cp /usr/s ...
- TypeScript体系调研报告
作者简介:aoto 蚂蚁金服·数据体验技术团队 Q:为什么要写这边文章?这篇文章要表达什么? A:我们考虑在SPA应用中使用TS作为开发语言,我们需要一篇系统性介绍TS本身及周边的文章来论证在项目中使 ...
- 解决Ubuntu 17.10设置面板打不开的问题
问题描述 对于Ubuntu桌面系统我用得不多,最近安装了Ubuntu17.10使用,一直都没遇到什么大的问题,界面风格已经与Windows很相似,总体体验还不错.直到某一天我突然手痒痒把Dock面板从 ...
- [再寄小读者之数学篇](2014-06-23 Bernstein's inequality)
$$\bex \supp \hat u\subset \sed{2^{j-2}\leq |\xi|\leq 2^j} \ra \cfrac{1}{C}2^{jk}\sen{f}_{L^p} \leq ...
- 学习python笔记 协程
下面将一个经典的消费者和生产者的案例进行分析: import time def consumer(): r = '' while True: n = yield r if not n: return ...