办公用品管理系统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 ...
随机推荐
- vue服务器端渲染
Vue.js 是构建客户端应用程序的框架.默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM.然而,也可以将同一个组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏 ...
- tensorflow函数/重要功能实现
一.基础函数 1.1 .tf.reduce_sum(input_tensor, axis) Computes the sum of elements across dimensions of a ...
- Python——正则模块
1.re模块是用来操作正则表达式 2.正则表达式——用来字符串匹配的 (1)字符组:[字符组] 例如[0123fdsa456*/-] [0-9] 等同于[0123456789] [a-z] 匹配小写 ...
- Socket通信例子
Server端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Da ...
- 一个".java"源文件中是否可以包括多个类
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 现在我们编个测试文件来测试一番(一个程序员要具有用于探索的精神 -.- 手动滑稽) 1.编写一个 a ...
- P1137 旅行计划
/*拓扑排序去寻找点的拓扑序 便于DP,那么怎么去找 首先邻接表存边,然后dfs搜寻每一个点 最后进行拓扑排序,找到拓扑序*/ #include<bits/stdc++.h> ; ; us ...
- [洛谷P4234] 最小差值生成树
题目类型:\(LCT\)动态维护最小生成树 传送门:>Here< 题意:求一棵生成树,其最大边权减最小边权最小 解题思路 和魔法森林非常像.先对所有边进行排序,每次加边的时候删除环上的最小 ...
- python版接口自动化测试框架源码完整版(requests + unittest)
python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...
- FreeNAS:创建 CIFS 共享(权限)
第一部分:新建账户与指定数据集权限 简单起见,本教程主要介绍带基本身份验证的 CIFS 共享,即只有输入正确的用户名和密码才可以访问共享目录.关于创建匿名共享.多用户权限管理以及域控制器相关内容,我们 ...
- go 闭包程序解读
package main import "fmt" // 下面这函数就是闭包函数(就是返回一个匿名函数的地址的函数,其中要1.定义一个需要保护的局部变量i 2.一个匿名的函数) , ...