在powerbuilder中实现excel表格的导入和导出

来源 :硅谷 | 被引量 : 0次 | 上传用户:kuanhezyong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]使用PowerBuilder编程软件,结合OLEObject技术和PowerBuilder的数据窗口,实现将excel报表导入到数据库中以及将数据库中的数据导出到excel文件中的功能。
  [关键词]PowerBuilder excel OLE对象 数据导入导出
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710062-01
  在为某单位制作一个管理信息系统软件时,用户提出,系统中要能够实现excel表格的导入和导出。Excel软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,在使用这个管理信息系统软件之前,单位的大部分数据都是保存在excel中的。系统前台的开发使用的是POWERBUILDE,POWERBUILDER是面向对象的数据库开发工具之一,它可以操纵众多大型数据库和桌面数据库,支持多种硬件平台。但它有一个致命的弱点,就是打印报表非常不方便,打印函数太少,特别是对中国式报表。而 EXCEL制表却非常容易,若把两者结合起来使用则会取长补短。也就是说我们的这个系统要既能将excel报表中的内容导入到数据库中,又要能将数据库中的数据导出到excel中。
  PowerBuider是Sybase公司推出的一种高级数据库应用程序开发环境,在这个环境中开发数据库应用程序,使用其专利技术DataWindow,可以很轻松的开发出非常专业的数据库应用程序。此外,PowerBuilder还支持多种数据库,能够很轻松的与目前流行的MS SQL Server、Oracle等企业级数据库建立连接,处理各种事务。PowerBuilder中的编程语言被称为脚本(Script),实际上,使用PowerBuilder编写的程序也是事件驱动,在界面设计上也完全做到了“所见即所得”,并完全使用面向对象的编程思想,它还提供了对OLE、DDE、Automation等技术的支持,下面我们就先来看一下如何将excel报表通过powerbuilder导入到数据库中。
  首先,声明一个OLE对象,如下:
  OLEObject ExcelServer
  其次,创建该OLE对象,如下:
  ExcelServer =Create OLEObject
  然后,使用PowerBuilder中的ConnectToNewObject函数来创建一个新的OLE对象,并且连接到该对象上,如下:
  ExcelServer. ConnectToNewObject ("excel.Application")调用该函数时,如果成功的话,返回值是0,否则就意味着调用失败。
  调用函数成功后我们需要利用getfileopenname函数调用一个对话框,用来选择将要导入到数据库中的excel报表。具体代码如下,省略了部分变量定义语句。
  value=getfileopenname("请选择文件名",str_filename,file,"xls","xls Files (*.xls),*.xls")
  ExcelServer.Workbooks.Open(str_filename)
  str_savename="c:\temp.txt"
  excelserver.activeworkbook.saveas(str_savename,3)
  在作完以上工作以后,需要关闭自动化对象,撤销与自动化服务器的连接,销毁OLE对象,因为使用自动化程序,尤其是Word或Excel这样的Office程序,所消耗的系统资源是很庞大的,因此在每次工作完成之后,需要释放这部分系统资源。代码如下:
  ExcelServer.quit()
  ExcelServer.DisconnectObject()
  DESTROY ExcelServer
  系统资源释放后通过dw_1.ImportFile(str_savename)语句将excel
  报表中的内容显示到powerbuilder的数据窗口中,再通过dw_1.update()命令将数据保存在数据库中。
  在导入过程中有一点需注意,就是数据库中表的列与相应excel报表的列的数据类型要相对应。
  以上为导入excel报表的过程,下面我们看一下将数据库中数据导出到excel文件中的过程。
  首先,声明两个OLE对象,如下:
  OLEObject newoleobject,newoleworkbooks
  其次,创建该OLE对象,如下:
  newoleobject=Create oleobject
  然后,使用PowerBuilder中的ConnectToNewObject函数来创建一个新的OLE对象,并且连接到该对象上,如下:
  newoleobject. ConnectToNewObject ("excel.Application")调用该函数时,如果成功的话,返回值是0。
  函数调用成功后,我们打开一个excel文件并且使这个文件可见,然后利用cell函数将数据窗口中的数据导出到excel文件中,部分代码如下:
  newoleobject.workbooks.add
  newoleobject.visible=true
  newoleworkbooks=newoleobject.worksheets(1)
  newoleworkbooks.cells(1,1).value="列名1"
  newoleworkbooks.cells(1,2).value="列名2"
  ……………………
  long rownumber
  for rownumber=2 to dw_1.rowcount()+1
   newoleworkbooks.cells(rownumber,1).value=rownumber - 1
   newoleworkbooks.cells(rownumber,2).value=dw_1.getitemstring(rownumber - 1,1)
   newoleworkbooks.cells(rownumber,3).value=dw_1.getitemstring(rownumber - 1,2)
  ………………………
  Next
  将数据导出到excel文件后,用getfilesavename函数调用对话框将excel文件保存到适当的位置,最后将系统资源释放,代码如下:
  value=getfilesavename("请选择文件名",str_filename,file,"xls","xls Files (*.xls),*.xls")
  newoleworkbooks.saveas(str_filename)
  newoleobject.quit()
  newoleobject.disconnectobject()
  destroy newoleobject
  destroy newoleworkbooks
  以上内容为在PowerBuilder中实现excel文件的导入和导出功能的详细说明,通过实际应用表明,实现excel报表的导入功能能避免重新在数据库中录入数据的繁琐,数据库中数据导出到excel文件使数据的打印更为方便和灵活,这两个功能也是我们在制作管理信息系统软件时必不可少的两个功能。
  
  参考文献:
  [1]郑阿奇、殷红先、张为民,编著 PowerBuilder实用教程(第二版)电子工业出版社,2004.3.
  [2]华传铭、张振坤、吴晓英,编著 PowerBuilder 9.0 数据库开发实例 机械工业出版社 2003.9.
其他文献
[摘要]隐性知识显性化是知识管理的关键,然而由于隐性知识高度个人化的、较难规范化表达的特点,使其传播、利用受到了限制。在对隐性知识研究的基础上,将web2.0相关的技术与知识转化理论联系起来,对在web2.0环境下隐形知识转化的可行性进行探讨,提出一些解决影响隐性知识转化障碍的方法,以促进其向显性知识的转化。  [关键词]知识管理 隐性知识 转化 web2.0  中图分类号:G2文献标识码:A 文
期刊
[摘要]很多P2P应用程序需要通过TCP协议进行通讯连接,然而NAT技术却日益成为了TCP连接的最大障碍,一些比较流行的P2P应用程序不支持NAT穿透,或者在穿透方面做的不是很好。于是,人们提出采用新兴的SIP协议通过UDP协议建立通讯管道,甚至寄希望于发展中的IPv6协议。这篇论文主要讨论了一种全新的TCP协议P2P通讯方案,并用它成功的连接了两个位于NAT网络下的两个通讯端主机。  [关键词]
期刊
[摘要]可编程控制器(PLC)在工业控制中应用越来越广泛,而PLC控制系统的可靠性直接影响到工业企业的安全生产和经济运行,因此PLC在应用中必须提高其系统的抗干扰能力。提出使用中应注意的若干问题,以提醒使用者的注意。  [关键词]PLC 干扰源 抗干扰 软件  中图分类号:TN97 文献标识码:A 文章编号:1671-7597(2008)07120031-01    一、概述    随着科学技术的
期刊
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710039-01    一、如何快速选定多个工作表  我们可以选定若干个工作表使其成为“工作表组”可同时选中多张相邻的工作表,也可可选定多张不相邻的工作表。若要选中多张相邻的工作表,其方法为:先单击想要选定的第一张工作表的标签,按住“Shift”键,然后单击最后一个工作表的标签,这时会看到在活动工作的标题栏上出现“工作
期刊
[摘要]HSDPA因其具备高速下行速率和高容量的特点,所以备受研究者关注,分析HSDPA的关键技术,并指出HSDPA在具体实现过程中出现的问题,然后提出引入CDMA/TDMA技术来解决该问题的方案,该方案能更好提高网络对数据业务的传输。  [关键词]HSDPA WCDMA 自适应调制 混合自动重发  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710044-01 
期刊
[摘要]介绍了高端PC服务器(对称多处理器、内存>4GB)内存管理技术,以及在此硬件基础上运行的数据库管理系统性能调整与优化的理论、方法和具体实践。  [关键词]内存 数据库 性能 调整 优化  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710045-01  随着我厂信息化建设的逐步深化,ERP、分解细录等信息系统对数据处理的容量和性能提出了更高的要求。我厂ER
期刊
[摘要]在网络的使用过程中,为了保证数据及个人信息的安全,经常需要设计密码,但太普通的密码很容易被破解,一个不安全的密码有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息,那么对用户设置一个安全的密码将有很大帮助,同时也使得网站更具人性化,更有吸引力。  [关键词]JavaScript 密码强度 密码安全  中图分类号:TP3 文
期刊
[摘要]介绍一种基于模糊控制原理的自适应PID控制方法,实现PID控制器参数的在线自调整。仿真实验结果表明,此方法具有良好的动态、静态特性和较强的鲁棒性。  [关键词]模糊控制 PID控制器 MATLAB  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)0710025-01    一、前言    常规PID控制器结构简单,应用广泛,稳定性好,但不能克服模型参数变化范围
期刊
[摘要]阐述IPTV系统的需求分析、相关技术,总结实践过程中,IPTV对承载网的要求及优化建议。  [关键词]IPTV 承载网 骨干网 城域网 接入网Qos 组播 ADSL FTTX GPON  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710041-02  随着宽带接入的发展,用户不再满足简单的Internet上网,对通过Internet提供更多的宽带增值业务
期刊
[摘要]在VFP编程中,如何给不同环境下的程序及数据库文件加密,从而促进其应用软件的商业化。  [关键词]VF 程序 加密  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710050-01  传统密码的加密方法,是指在Dbase、FOXBASE、FOXBASE+、FOXPRO2.X 环境下开发的数据库管理系统中使用的方法。传统加密方法种类甚多,但是笔者认为由于Db
期刊