编程实现PB数据窗口与word表格的相互转换.docVIP

编程实现PB数据窗口与word表格的相互转换.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程实现PB数据窗口与word表格的相互转换

PAGE  PAGE 5 编程实现PB数据窗口与word表格的相互转换 作者:望强 在用PowerBuilder开发应用程序时,有时用户要求把外单位以Word表格形式提供的数据导入到数据窗口中,有时又需要把数据窗口导出成Word表格。用过PB的人都知道,虽然PB的数据窗口对象提供了ImportFile和SaveAs这样两个函数,但是他们都不支持Word表格的导入导出,笔者只好另辟蹊径,现将实现的方法跟大家作个介绍。 一、将Word表格中的数据导入到数据窗口中 基本思路:在Word文档里选中要导入的表格行,点鼠标右键复制到剪贴板,再从剪贴板粘贴到一个多行文本编辑框中,行列数据就变成了以回车符和制表符分割的纯文本,依次取出插到数据窗口中既可实现数据导入。 具体实现:在需要此功能的窗体上添加一个多行文本编辑框mle_1,visible属性设为False,运行时不显示;再添加一个按钮,名称Name设为cb_paste,文本Text设为“粘贴自word”,按钮cb_paste的clicked事件对应的script代码如下: int row,p1,p2,i string str,val mle_1.Paste()//将剪贴板的内容粘贴至mle_1中 do while mle_1.text p1=pos(mle_1.text,~r)//根据回车符切出行记录字符串 if p10 then//有一个回车符则在数据窗口中增加一行记录 row=dw_1.insertrow(0) str=left(mle_1.text,p1 -1)//去掉字符串结尾的回车符 i=1 do while str p2=pos(str,~t)//根据制表符Tab切出列字符串 if p20 then i=i+1 val=left(str,p2 -1) //去掉字符串结尾的制表符 dw_1.setitem(row,i,val)//设置新插入行的列值 str=mid(str,p2+1) else//将字符串剩余部分赋给最后一列 i=i+1 dw_1.setitem(row,i,str) exit end if loop mle_1.text=mid(mle_1.text,p1+2) else exit end if loop if dw_1.update()0 then //保存导入的数据 commit; else rollback; end if 二、将数据窗口导出成Word表格 基本思路:将数据窗口的数据逐行读出,以制表符区分列,以回车符区分行,拼接成一个长字符串,复制到剪贴板中;然后动态创建一个OLE对象,跟事先准备的一个Word临时文档关联,将剪贴板中的内容粘贴到该文档,利用Word可以将文字转换成表格的功能,实现数据导出成Word表格。 具体实现:在需要此功能的窗体上添加一个按钮,名称Name设为cb_export,文本Text设为“导出数据到word”,按钮cb_ export的clicked事件对应的script代码如下: string pathname,filename string content,name,sex,birthday,hometown,dep,duty,identity integer rows,i,value,result pathname=出国人员名单 value = GetFileSaveName(文件保存为, pathname, filename, doc, Word 文档(*.doc),*.doc)//弹出文件保存对话框 if value1 then return rows=dw_1.rowcount() content=姓名~t性别~t出生年月~t出生地~t工作单位~t职务或职称~t对外身份~r~n//表头内容 for i=1 to rows name=dw_1.getitemstring(i,name)//取数据 sex=dw_1.getitemstring(i,sex) birthday=dw_1.getitemstring(i,birthday) hometown=dw_1.getitemstring(i,hometown) dep=dw_1.getitemstring(i,department) duty=dw_1.getitemstring(i,post) identity=dw_1.getitemstring(i,figure) if isnull(name) then name= //防止null值参与字符串拼接 if i

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档