zoukankan      html  css  js  c++  java
  • PB的datawindow导出到excel文件(使用saveasascii)

    **********************************************************/
    /*函数名称:uf_dwsaveas_excel
    功能:将数据窗口数据导出EXCEL文件,并将EXCEL文件默认英文标题替换成中文。
    参数:datawindow datawin,为用户要导出数据窗口的数据窗口控件名
    返回值:integer 1,success;-1,error
    流程描述:先用saveasAscii()倒出为excel文件,再替换表头为中文名
     
            原因:为提高程序的可读性作了少量的修改(如:增加注释、改变排版风格等)*/
    /**********************************************************/

    /***************以下程序将导出为EXCEL文档******************/
    integer li_rtn,ii,li_asc
    string ls_name,ls_pathname
    boolean lb_exist
    if datawin.RowCount()<1 then
    MessageBox("提示信息","请先检索数据再导出至Excel!")
    return -1//error
    end if
    li_rtn=GetFileSaveName("保存文件",ls_pathname,ls_name,"xls","Excel文件(*.xls),*.xls")

    if li_rtn=1 then
    lb_exist = FileExists(ls_pathname)
    IF lb_exist THEN
    li_rtn = MessageBox("保存", ls_pathname+"已经存在,是否覆盖?",Exclamation!, YesNo!)
    end if
    if li_rtn=1 then
    //当文件存在用户选择覆盖,或是文件本就不存在时。注意变量li_rtn
    li_rtn=datawin.SaveAsAscii(ls_pathname)
    if li_rtn=1 then
    //MessageBox("提示信息","导出数据成功!")
    else
    MessageBox("错误信息","导出数据失败!")
    return -1//error
    end if
    else
    return -1//error
    end if
    else
    return -1
    end if

    /**********以下程序将导出的EXCEL英文标题替换为汉字*********/
    long numcols , numrows , c, r
    OLEObject xlapp , xlsub
    int ret
    numcols = long(datawin.Object.DataWindow.Column.Count)
    numrows = datawin.RowCount()

    // 产生oleobject的实例
    xlApp = Create OLEObject

    //连接ole对象
    ret = xlApp.ConnectToNewObject( "Excel.Sheet" )
    if ret < 0  then
    MessageBox("连接失败!","连接到EXCEL失败,请确认您的系统是否已经安装EXCEL!~r~n"&
    +"错误代码:"+string(ret))
        return -1
    end if
    // 打开EXCEL文件
    xlApp.Application.Workbooks.Open(ls_pathname)
    ////使文件可见
    //xlApp.Application.Visible = true

    // 得到活动工作表的引用,改善程序性能
    xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]
    string ls_colname,ls_text,ls_modistr,ls_col
    //取字段名更改为对应的文本text值
    FOR c=1 to numcols
    ls_col="#"+string(c)+".name"
    ls_colname=datawin.describe(ls_col)
    ls_modistr=ls_colname+"_t.text"
    ls_text=datawin.describe(ls_modistr)
    xlsub.cells[1,c]=ls_text
    NEXT

    xlApp.DisConnectObject()
    Destroy xlapp
    MessageBox("提示信息","导出数据成功!")
    return 1//success

  • 相关阅读:
    Pycharm2019.1.2安装详解
    下载及安装Python详细步骤
    ClientDataSet中撤消与恢复操作及执行细节
    Delphi KeyPress KeyDown时Key的值
    fastReport动态传参【含图片】
    Delphi静态和动态调用dll的实例
    关于SPC系统
    SQL Server 占用内存太高,查找占用内存高以及影响其性能的sql语句
    SqlServer 资源占用情况[简易]
    Sqlserver DMV诊断和调优DB性能
  • 原文地址:https://www.cnblogs.com/myjoan/p/6039280.html
Copyright © 2011-2022 走看看