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文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值