Abap 将本地表导出到excel的功能模块

Abap 将本地表导出到excel的功能模块,abap,alv,Abap,Alv,我正在Business Warehouse中开发一个程序,该程序允许您通过使用rspcchain表遵循父链到子链的层次结构来绘制所有流程链。目前,我已将输出打印到屏幕上,但希望将此输出导出到excel。我一直无法找到一个功能模块,以满足这一目的,所以任何帮助将不胜感激 注意-在了解了可用的SALV类之后,我更改了代码以不同的方式显示表 REPORT Z_PC_VARIANT_MAPPING. *Declaring types and variables TYPES: BEGIN OF t_c

我正在Business Warehouse中开发一个程序,该程序允许您通过使用rspcchain表遵循父链到子链的层次结构来绘制所有流程链。目前,我已将输出打印到屏幕上,但希望将此输出导出到excel。我一直无法找到一个功能模块,以满足这一目的,所以任何帮助将不胜感激

注意-在了解了可用的SALV类之后,我更改了代码以不同的方式显示表

REPORT  Z_PC_VARIANT_MAPPING.

*Declaring types and variables
TYPES: BEGIN OF t_chains,
  chain_id LIKE  rspcchain-chain_id,
  variant LIKE rspcchain-variante,
END OF t_chains.

DATA: lt_rspcchain TYPE STANDARD TABLE OF t_chains,
      lwa_rspcchain TYPE t_chains,
      o_alv TYPE REF TO cl_salv_table,
      lx_msg TYPE REF TO cx_salv_msg.

TABLES: rspcchain.

*selection screen setup
SELECT-OPTIONS chain_id FOR rspcchain-chain_id.
SELECT-OPTIONS type FOR rspcchain-type.

*filling local table
SELECT chain_id variante
  FROM rspcchain  INTO TABLE lt_rspcchain
  WHERE chain_id IN chain_id AND
  type IN  type AND
  objvers = 'A'.

*original code to test printing output on screen
*LOOP AT lt_rspcchain INTO lwa_rspcchain.
*  skip.
*  WRITE lwa_rspcchain-chain_id.
*  WRITE lwa_rspcchain-variant.
*ENDLOOP.

IF sy-subrc NE 0. "sy-subrc = return code
  WRITE 'Data not found'.
ENDIF.


*loading data from local table into alv object table
TRY.
  cl_salv_table=>factory(
    IMPORTING
      r_salv_table = o_alv
    CHANGING
      t_table      = lt_rspcchain ).
  CATCH cx_salv_msg INTO lx_msg.
ENDTRY.

*calling display method to display table
o_alv->display( ).

您可以尝试以下方法下载CSV文件,该文件的扩展名为.xls,可以在Excel中完美打开:

调用
SAP\u Convert\u to\u csv\u格式将
lt\u rspcchain
转换为csv内部表

通过调用
cl\u gui\u frontend\u services=>file\u save\u dialog()

通过调用
cl\u gui\u frontend\u services=>gui\u download()


我假设您可以通过经验或通过Google找到这些文件的工作方式。

您可以使用SALV框架来实现这一点,它附带了一个类,可以将显示的任何内容导出为各种格式,包括Excel可以理解的.MHTML和.XML格式。类
CL\u SALV\u表
有一个方法
到\u XML
来支持这一点;此外,您可能需要
CL\u SALV\u BS\u XML\u UTILS
来处理转换。有关编码示例,请参见报告
SALV\u TEST\u TABLE\u DISPLAY\u或\u XML

您应该查看ABAP2XLSX项目


不确定BW中是否存在所有必要的组件,但这确实是用我找到的ABAP代码创建电子表格的最佳解决方案。

当我在se37中搜索此功能模块时,找不到它。无法找到SAP_CONVERT_TO_CSV_格式,您也可以尝试使用
SAP\u CONVERT\u TO\u TEX\u格式
或尝试自己创建一个包含字符串的内部表。此FM可能不在BW中。并非ECC中的所有功能都是。我有兴趣尝试一下,希望它能在我的系统中使用。我刚刚检查了SE37,有很多ALV和SALV功能模块可供使用。看起来这将是正确的方向。@Salmonerd它不是一个函数模块,您必须使用类,但不要担心。您可以搜索名为SALVXML的报告,但我明天会检查。是的,我对SALV类进行了一些研究,并更改了代码,现在使用SALV table类显示报告。