系统:xpsp3+sql2000+pb8.02Build9506
我导出到Excel的语句是:dw_1.SaveAs(ls_fname,HTMLTable!,True),有时正常,有时有乱码,通过上网查找说是pb9用以下语句可以解决dw_1.SaveAs(ls_fname,HTMLTable!,True,EncodingUTF8!),但我的系统是pb8的,改成这条语句后有错误提示:illegal enumerated constant:encodingutf8. 请高手看看是不是pb8无此功能?必须用pb9吗?有没有pb8的补丁程序可以解决呢?谢谢!!
------解决方案--------------------
这个跟数据量有关的吧
------解决方案--------------------
我遇到過相同的問題,測試後發現應該是轉出內容的部分文字導致的。我也不解為什麼?部分文字會導致整個亂碼
------解决方案--------------------
saveasascii()试试
------解决方案--------------------
http://www.gougou.com/search?search=powerbuilder8.0.4&restype=-1&id=10000001&ty=0&pattern=&xmp=0
不过,估计升级补丁应该也解决不了
------解决方案--------------------
------解决方案--------------------
你看看
dw_1.object.datawindow.data.htmltable
这个属性取得的数据是否有乱码
如果没有的话,你可以考虑用如下步骤来导出数据窗口:
(1)生成一个空的xls文件(可以saveas一个空的数据窗口)
(2)打开xls文件,复制数据,粘贴数据,保存xls文件
- C/C++ code
OLEObject excel excel = CREATE OLEObject if excel.ConnectToObject(docname) = 0 then excel.application.DisplayAlerts = FALSE excel.application.workbooks(1).Parent.Windows(excel.application.workbooks(1).Name).Visible = True clipboard(dw_1.object.datawindow.data.htmltable) excel.application.workbooks(1).ActiveSheet.Paste clipboard(' ') excel.application.workbooks(1).saveas(docname, 39) excel.application.workbooks(1).close() end if
------解决方案--------------------
同意6楼观点!
------解决方案--------------------
dw_1.object.datawindow.data.htmltable
这个属性取得的数据如果没有乱码,可以直接将该属性值writefile为excel文件“N:\****\.***.xls”
------解决方案--------------------
用黄大哥那个DW2XLS试试呢 前几天放的DEMO里有针对PB8版本的
------解决方案--------------------
- C/C++ code
string ls_htmldatals_htmldata = '<META HTTP-EQUIV="Content-type" Content="text-html;charset=gb2312">'ls_htmldata += '~r~n' + dw_1.object.datawindow.data.htmltable然后通过fileopen, filewrite , fileclose 将ls_htmldata保存到(*.xls)excel文件中
------解决方案--------------------
用 别人的控件不更好 。。。直接调用就好了
------解决方案--------------------
另外导出的xls文件中,经常会出现这样的情况,单元格数据为:01001, 但是导出的xls文件打开时,数据却为:1001。或者单元格数据为:123456789123456789, 导出的xls文件打开后,数据却为:1.23457E+17。这显然是我们所不期望看到的。
这时候你可以这样处理
- C/C++ code
string ls_htmldatals_htmldata = dw_1.object.datawindow.data.htmltable//以下函数将ls_htmldata中的第一个'<table'替换为'<table x:str', 函数请自己完善str_replace(ls_htmldata, '<table', '<table x:str')ls_htmldata = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">~r~n' +& '<META HTTP-EQUIV="Content-type" Content="text-html;charset=gb2312">~r~n' +& ls_htmldata然后通过fileopen, filewrite , fileclose 将ls_htmldata保存到(*.xls)excel文件中