PowerBuider在导出Excel之前,设置列名为中文

来源:互联网 发布:gentoo linux安装 编辑:程序博客网 时间:2024/04/30 07:52

解决导出的Excel列名为中文的问题

用 saveasascii(docname,excel5!,true)方法虽然导出的列名是中文,但是导出的数据存在一系列的问题,比如数据类型问题、身份证号码后四位为0的问题等等;

用 saveas(docname)方法,虽然导出的列名是英文,但是数据还是按照数据窗口的显示方式导出来的。

查看PB帮助文档dbname的设置,就可以轻易的把列名设置为中文,见下图

1、静态设置列名如下代码:

dw_name.object.username.dbname = '用户名' //username是列名 

dw_name.object.password.dbname = '密码'

 

2、动态设置列名代码如下:

//该页的数据窗口叫dw_name,导出按钮的click()事件string docname, namedinteger valuestring ls_colname,ls_text,ls_modistr,ls_collong numcols,numrows,c,rboolean lb_exist = FALSEdocname =  "新昌县城乡居民社会养老保险参(续)保人员名册"value = GetFileSaveName("选择保存文件",docname, named, "XLS", "XLS 文件(*.xls),*.xls") IF value = 1 THENlb_exist = FileExists(docname)   IF lb_exist THEN      value = MessageBox("保存", docname+"已经存在,是否覆盖?",Exclamation!, YesNo!)   END IF   IF value = 1 THEN     numcols = long(dw_name.Object.DataWindow.column.count)     numrows = dw_name.rowcount( )FOR c=1 TO numcolsls_col     = "#"+string(c)+".name"ls_colname = dw_name.describe(ls_col)ls_modistr = ls_colname+"_t.text"ls_text    = string(dw_name.describe(ls_modistr))dw_name.Modify(ls_colname+".dbName='"+trim(ls_text)+"'")NEXTvalue = dw_name.saveas(docname,excel5!,true)IF value = 1 THEN MessageBox("提示信息","导出数据成功!")ELSEMessageBox("错误信息","导出数据失败!")RETURN -1END IF END IFEND IF


 

原创粉丝点击