SAP ABAP 内表导出EXCEL 新方法

ABAP 内表导出EXCEL可以用OLE方法,也可以用SAP 已有的函数:

RH_START_EXCEL_WITH_DATA,

GUI_DOWNLOAD,

还可以:

data GT_HEADER    TYPE    LVC_T_FCAT."需要导出EXCEL的标题

data: r_result_data type ref to cl_salv_ex_result_data_table.
data: lr_data type ref to data.
data: l_xml type xstring.
DATA: lr_excel2007 type ref to CL_SALV_BS_OFFICE2007_BASE.
CHECK OUT_DATA[] IS NOT INITIAL. "内表数据
get reference of OUT_DATA[] into lr_data.
r_result_data = cl_salv_ex_util=>FACTORY_RESULT_DATA_TABLE(
*    T_SELECTED_ROWS             = lt_lvc_row
*    T_SELECTED_COLUMNS          = lt_sel_cols
*    T_SELECTED_CELLS            = lt_sel_cells
    R_DATA                      = lr_data
*    S_LAYOUT                    = gs_layo
    T_FIELDCATALOG              = GT_HEADER[]
*    T_SORT                      = gt_sort
*    T_FILTER                    = gt_filter
*    T_HYPERLINKS                = me->mt_hyperlinks
*    S_CURRENT_CELL              = ls_cur_cell
*    HYPERLINK_ENTRY_COLUMN     = ls_hyper_entry
*    DROPDOWN_ENTRY_COLUMN      = ls_dropdown_entry
*    T_DROPDOWN_VALUES           = lt_drdn )
*    r_top_of_list               = lr_form_tol
*    r_end_of_list               = lr_form_eol
                             ).
 CREATE OBJECT lr_excel2007 TYPE CL_SALV_BS_EX_OFFICE2007
     EXPORTING
       r_result_data = r_result_data.

 if lr_excel2007 is not initial.
     call method lr_excel2007->transform
       receiving
         excel_xml = L_xml.

 endif.

CALL FUNCTION 'XML_EXPORT_DIALOG'
  EXPORTING
    I_XML                            = L_XML
    I_DEFAULT_EXTENSION              = 'XLSX'
    I_INITIAL_DIRECTORY              = ''
    I_DEFAULT_FILE_NAME              = 'EXPORT.XLSX'
    I_MASK                           = 'Excel (*.XLSX)|*.XLSX'
*   I_APPLICATION                    =
 EXCEPTIONS
   APPLICATION_NOT_EXECUTABLE       = 1
   OTHERS                           = 2
               .

下面介绍一种新的方法:适用于要求EXCEL较复杂的格式,样式。但此方法不能实现EXCEL中有图片等VBA按件,而且只能是2003格式,下载来的文件扩展名是.xls 。

1.先编辑好EXCEL文件,

 2. 另存为XML文本文件

xml 文件是这个样子的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值