解决导出的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, named
integer value
string ls_colname,ls_text,ls_modistr,ls_col
long numcols,numrows,c,r
boolean lb_exist = FALSE
docname = "新昌县城乡居民社会养老保险参(续)保人员名册"
value = GetFileSaveName("选择保存文件",docname, named, "XLS", "XLS 文件(*.xls),*.xls")
IF value = 1 THEN
lb_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 numcols
ls_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)+"'")
NEXT
value = dw_name.saveas(docname,excel5!,true)
IF value = 1 THEN
MessageBox("提示信息","导出数据成功!")
ELSE
MessageBox("错误信息","导出数据失败!")
RETURN -1
END IF
END IF
END IF