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



我正在处理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( ).

您可以使用SALV框架来实现这一点,它附带了一个类来导出将显示为各种格式的内容,包括Excel可以理解的。mhtml和。xml格式。类CL_SALV_TABLE有一个方法TO_XML来支持这一点;此外,您可能需要CL_SALV_BS_XML_UTILS来处理转换。示例编码请参见报告SALV_TEST_TABLE_DISPLAY_OR_XML

您应该查看ABAP2XLSX项目。

http://wiki.sdn.sap.com/wiki/display/ABAP/abap2xlsx

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

您可以尝试以下操作,它将下载一个CSV文件,该文件以。xls扩展名在Excel中完美地打开:

通过调用SAP_CONVERT_TO_CSV_FORMATlt_rspcchain转换为csv内部表

通过调用cl_gui_frontend_services=>file_save_dialog( )

找出用户想要存储文件的位置

通过调用cl_gui_frontend_services=>gui_download( )

存储文件

我想你可以通过经验或通过谷歌找到这些是如何工作的。

您可以尝试使用按钮保存xls添加GUI状态。例如:

"STATUS GUI
o_alv->set_screen_status( pfstatus = 'STANDARD' report = 'SAPLKKBL'     set_functions = o_alv->c_functions_all ).

问候,迭戈。

相关内容

  • 没有找到相关文章

最新更新