pb数据窗口html,pb9中使用htmltable方式将数据窗口导出为excel文件的几点看法

在PB9中可以通过(1)saveas(ls_path, excel!, true)将数据窗口中的data数据导出为excel,可以通过(2)saveas(ls_path, htmltable!, true)将数据窗口中的display数据导出为html格式的excel文件,也可以通过(3)saveasascii(ls_path)将数据窗口中的display数据导出为excel文件。

第(1)种方法导出的文件对于客户来讲,实际意义并不大。第(2)和第(3)中方法都存在一定的缺陷:第(2)种导出的xls文件,在导出前通过dw_1.modify("DataWindow.HTMLTable.Border='1'")设置htmltable显示框线,来使得导出的excel文件包含边框,但是导出的文件有可能显示乱码,而且对于以0为开头的或者位数较长的纯数字的字符串数据,导出后的数据会失真(如:单元格数据为:01001, 但是导出的xls文件打开时,数据却为:1001;或者单元格数据为:123456789123456789, 导出的xls文件打开后,数据却为:1.23457E+17);第(3)种导出的数据没有框线,看起来也比较混乱,同时对于以0为开头的或者位数较长的纯数字的字符串数据,导出后的数据也会失真。

本文主要介绍第(2)种方法,至于第(3)中,在(PB调用SaveAsAscii转excel)这个链接上有关于以0为开头的纯数字的字符串数据的处理方法。

在pb的datawindow中具有如下属性dw_1.object.datawindow.data.htmltable, 该属性值与通过saveas(ls_path, htmltable!, true)导出的excel文件的内容基本上是一致的。因此我们可以考虑通过取得该属性值后,再将该属性值filewrite的方式来保存为excel文件。

在dw_1.object.datawindow.data.htmltable前面加上这一句'',就可以保证最终filewrite后的excel不会显示为乱码。

在dw_1.object.datawindow.data.htmltable前面加上这一句'',并且在dw_1.object.datawindow.data.htmltable中的'

通过dw_1.object.datawindow.data.htmltable这种方式导出的excel文件中数据的字体大小默认为12号,字体默认为宋体,这个时候可以通过在'

具体可以这样处理:

string ls_htmldata

ls_htmldata = dw_1.object.datawindow.data.htmltable

//以下函数将ls_htmldata中的第一个'

str_replace(ls_htmldata, '

ls_htmldata = '~r~n' +&

'~r~n' +&

ls_htmldata

然后通过fileopen, filewrite , fileclose 将ls_htmldata保存到(*.xls)excel文件中

这样就可以既保证导出的xls文件不显示乱码,同时又能正确的显示全数字的文本字段,再者改变默认字体为Times New Roman,默认字号为9号。

另外导出的excel文件由于是html格式的,所以每次打开的时候速度会计较慢,我们可以在filewrite后,通过oleobject的方法将本次保存的文件用excel打开,然后再保存,这样就可以保证导出的文件是名副其实的excel文件了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值