度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 4456|回复: 7
打印 上一主题 下一主题

[分享] 度量快速开发平台ExportToExcel使用介绍

[复制链接]

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
跳转到指定楼层
楼主
发表于 2020-4-19 20:22:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
度量快速开发平台中,各类部件都提供了快捷的导出功能,便于数据导出,本文主要介绍网格部件的导出xls功能和其他特殊的导出要求说明。
方法说明
网格部件导出xls文件,大家最熟悉的用法就是直接从智能向导中生成导出xls的代码,简单明了好用。下面是一个网格部件导出使用示例:
  
'智能向导生成的导出xls
  
dim file=网格部件1.ExportToExcel()
  
if isnull(file)=false then
  
if showquestion("文件已导出,是否立即打开?") then   
  
       openfile(file)
  
    end if
  
end if
  
   该功能运行后,需要弹出一个保存导出文件的文本框,并且默认的文件名称是网格部件的名称,我们可以选择一个地址和文件名保存,保存后就提示是否打开查看。
   导出功能使用就完成了,简单好用。而且度量快速开发平台中,导出的xls文件是所见所得的效果,即网格部件中拖拉过滤形成的是什么数据,则导出后查看就是什么数据。
   下面两个图是网格部件显示数据效果与导出后的效果对比,一个是网格直接查询的效果:
下面一个是在网格部件中使用了分组查看的功能,然后再导出的效果,与查看的效果一样。
    导出方法还可以重用,即我们可以预先定义好要导出网格的名称和保存路径。使用方法就是把智能向导中的代码稍作调整,重载一个ExportToExcel方法即可。
  
'生成预先定义好保存路径与文件名的导出
  
Dim filePath = "c:\test.xls"
  
网格部件1.ExportToExcel(filePath)
  
if showquestion("文件已导出,是否立即打开?") then   
  
openfile(file)
  
end if
  
这样使用后,我们在执行导出的时候,就不需要弹出选择保存导出文件的存储位置以及文件名称,系统会按照指定名称与路径自动保存。
复杂导出介绍
如果我们想要实现把一个网格中的数据,导出的时候生成多个导出文件怎么办?比如有一个人员档案网格,要把住培人员的导出一个xls,把医务人员导出成另外一个xls,那如何实现好呢?我们有几种方式可以实现。
第一种是根据网格部件所见所得的导出特点进行,把网格部件中的数据先过滤成住培人员,执行导出;导出完成后,再把网格中的数据过滤成医务人员,再执行导出。即能实现在一个导出功能中分类导出成不同xls文件的功能。这个需要利用DataView的RowFilter实现网格数据动态过滤。具体实现如下:
  
'借助网格部件的所见所得导出功能
  
'通过网格部件的行过滤实现
  
网格部件1.DataTable.DefaultView.RowFilter="类别='住培人员'"
  
Dim filePath = "c:\expfile\住培人员.xls"
  
dim file
  
file=网格部件1.ExportToExcel(filePath)
  
'-----------------------------------------------------------
  
网格部件1.DataTable.DefaultView.RowFilter="类别='医务人员'"
  
filePath = "c:\expfile\医务人员.xls"
  
file=网格部件1.ExportToExcel(filePath)
  
  
网格部件1.DataTable.DefaultView.RowFilter="1=1"
  
第二种方法是建立一个要导出的网格部件,把每次要导出的数据查询出来给这个网格,再导出。这种方式要麻烦一点,不过也是一种方式,可以熟悉DataTable的更多用法。
  
'获取整个数据网格的dt
  
dim dt = 网格部件1.DataTable
  
'克隆一个与网格部件1结构一样的dt用于保存要导出的数据
  
dim dt_xls = dt.Clone()
  
  
'把要导出的网格部件设置dt并刷新出来
  
网格部件2.DataTable = dt_xls
  
网格部件2.RefreshDataByDataTable()
  
'--------------------------------------------
  
'′从网格部件1中查询要导出的数据到网格部件2
  
dim dr_xls = dt.Select("类别='住培人员'")
  
'填充数据到要导出的网格部件中
  
For i=0 to dr_xls.Length-1
  
   dt_xls.ImportRow(dr_xls)
  
next
  
'导出本部分数据到指定的文件中
  
Dim filePath = "c:\expfile\住培人员.xls"
  
dim file
  
file=网格部件2.ExportToExcel(filePath)
  
'------------------------------------------
  
'清空要导出网格部件的数据
  
dt_xls.Clear()
  
'从网格部件1中查询要导出的数据到网格部件2
  
dr_xls =  dt.Select("类别='医务人员'")
  
'填充数据到要导出的网格部件中
  
For i=0 to dr_xls.Length-1
  
   dt_xls.ImportRow(dr_xls)
  
next
  
'导出本部分数据到指定的文件中
  
filePath = " c:\expfile\医务人员.xls "
  
file=网格部件2.ExportToExcel(filePath)
  

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
沙发
 楼主| 发表于 2020-4-19 20:24:01 | 只看该作者
之前有用户想 把一个网格中的数据 点一个按钮直接导出几个xls。还专门做外挂dll,后来通过这个方法就简单好用了。
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
板凳
发表于 2020-4-19 20:28:12 | 只看该作者
顶一个,好东西就要及时收藏
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
地板
发表于 2020-4-20 13:43:41 | 只看该作者
导出方法,好好用!
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9724

积分

论坛元老

Rank: 8Rank: 8

积分
9724
5#
发表于 2020-4-20 17:26:55 | 只看该作者
这个干货,收了
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
6#
发表于 2020-4-25 10:40:47 | 只看该作者
不错,简单易用。
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9724

积分

论坛元老

Rank: 8Rank: 8

积分
9724
7#
发表于 2020-5-22 10:38:45 | 只看该作者
这是针对表格数据的导出Excel,请问能不能导出word格式?求教
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9724

积分

论坛元老

Rank: 8Rank: 8

积分
9724
8#
发表于 2020-5-22 10:39:43 | 只看该作者
求html文档部件导出word方法
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-4-28 22:17 , Processed in 0.169336 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表