您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > PB数据窗口导出excel
PB数据窗口导出excel,修改第一行英文标题为中文标题,计算合计值分类:PB2013-11-0513:01712人阅读评论(0)收藏举报pb数据窗口导出excel中文标题计算合计值1.PB数据窗口导出excel利用dw.saveas(filename,Excel5!,true)方法先导出带英文标题的excel。intli_retstringls_filename,ls_pathnamebooleanlb_existifdw.rowcount()=0thenmessagebox(提示,无可保存的数据!)return;endifli_ret=GetFileSaveName(保存文件,ls_pathname,ls_filename,xls,Excel文件(*.xls),*.xls)ifli_ret=1thenlb_exist=FileExists(ls_pathname)IFlb_existTHENli_ret=MessageBox(保存,ls_pathname+已经存在,是否覆盖?,Exclamation!,YesNo!)endififli_ret=1thenli_ret=dw.saveas(ls_pathname,EXCEL5!,true)//此处必须为true,后面要修改第一行。ifli_ret=1then//修改标题头,计算合计gf_set_title_sum(dw,ls_pathname)messagebox('提示','保存成功!')endifendifendif2.修改第一行英文标题为中文标题,计算合计值gf_set_title_sum(datawindowdw,stringvs_filename)函数如下:intli_retlongll_column,ll_num,ll_dwrowcountlongll_xlsrowcount//excel的行数stringls_objtag[]//标题stringls_width[]//每列宽度stringls_obj,ls_valuestringls_objs[]inti,jStringls_english=ABCDEFGHIJKLMNOPQRSTUVWXYZstringls_colname//操作excelPointeroldpointerOLEObjectole_objectole_object=CREATEOLEObject//修改标题头,计算合计li_ret=ole_object.ConnectToNewObject(Excel.Application)IFli_ret0THENMessageBox('打开错误','无法连接EXCEL!是否已经安装了EXCEL?错误号:'+String(li_ret))RETURNENDIFole_object.Visible=false//ole应用服务是否显示oldpointer=SetPointer(HourGlass!)ole_object.application.workbooks.open(vs_filename)//打开文件//获取标题ll_column=Long(dw.Object.DataWindow.Column.Count)//取得字段总数i=0FORll_num=1TOll_columnIFdw.DESCRIBE(#+String(ll_num)+.Visible)=1THEN//列标志为nun_Visible的不显示i=i+1ls_obj=dw.DESCRIBE(#+String(ll_num)+.name)//字段名称的实际存储值ls_objs[i]=ls_objls_objtag[i]=dw.DESCRIBE(ls_obj+_t.text)//字段名称的显示值ls_width[i]=dw.DESCRIBE(ls_obj+'.width')//每列的宽度ENDIFNEXT//开始修改标题头forj=1toupperbound(ls_objtag)ole_object.Cells(1,j).value=ls_objtag[j]next//标题一行居中ole_object.rows(1).HorizontalAlignment=3//居中//计算合计值ll_dwrowcount=dw.rowcount()//行数ll_xlsrowcount=ll_dwrowcount+1//除了合计之外的行数ole_object.cells(ll_xlsrowcount+1,1).value='合计'forj=2toll_columnls_colname=Mid(ls_english,j,1)//获取列名Bole_object.Range(ls_colname+'2:'+ls_colname+string(ll_xlsrowcount)).Select//选中B2:B4ole_object.Range(ls_colname+string(ll_xlsrowcount+1)).Activate//将B5设为活动单元格ole_object.ActiveCell.FormulaR1C1==SUM(R[-+string((ll_xlsrowcount+1)-2)+]C:R[-1]C)//计算从第二行到倒数第二行的和值nextole_object.application.workbooks(1).worksheets(1).cells.EntireColumn.AutoFit//自适应列宽,行的话换EntireRowole_object.application.workbooks(1).save()//保存ole_object.application.quit()//退出ole_object.disconnectobject()//断开连接destroyole_object//销毁连接3.总结:其中关于excel操作的部分代码,可以使用excel里面的宏录制功能,查看对应操作的代码。Excel中Sum(R[-1]C:R[1]C[9])的意思:sum是求和函数,R表示行;C表示列。(当设置为R1C1引用时)R[-1]表示当前行的上一行;C表示当前列;R[1]表示当前行的下一行;C[9]表示当前列的后9列。
本文标题:PB数据窗口导出excel
链接地址:https://www.777doc.com/doc-2848914 .html