ABAP Excelファイルをアップロード、ダウンロードする方法

  ファイル入出力

概要

データをローカルに落としたいという要件がある場合、ユーザーはExcelを希望するケースが多いだろう。
そんな時は以下の汎用モジュールを使用して簡単に作る事ができます。
使用方法は、GUI_UPLOADやGUI_DOWNLOADとほとんど変わらず、少し使用するパラメータが異なったり、ファイル名の型が違うだけなのですぐに理解する事ができると思う。
ただ、一つ注意してほしいのは、ファイル名で使用する型RLGRAP-FILENAMEは128桁の文字型である為、階層が深いと問題になる場合がある。

サンプルプログラム:Excelアップロード

TYPE-POOLS: TRUXS.

TYPES: BEGIN OF T_FILE,
         VAL1(10) TYPE C,
         VAL2(10) TYPE C,
         VAL3(10) TYPE C,
       END OF T_FILE.
DATA: IT_FILE TYPE TABLE OF T_FILE. " 内部テーブル
DATA: IT_ROW TYPE truxs_t_text_data.
DATA: W_FILE TYPE RLGRAP-FILENAME.

W_FILE = 'C:\temp\upload.XLSX'.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
  EXPORTING
*   I_FIELD_SEPERATOR          =
*   I_LINE_HEADER              =
    I_TAB_RAW_DATA             = IT_ROW
    I_FILENAME                 = W_FILE
  TABLES
    I_TAB_CONVERTED_DATA       = IT_FILE
* EXCEPTIONS
*   CONVERSION_FAILED          = 1
*   OTHERS                     = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

サンプルプログラム:Excelダウンロード

TYPES: BEGIN OF T_FILE,
         VAL1(10) TYPE C,
         VAL2(10) TYPE C,
         VAL3(10) TYPE C,
       END OF T_FILE.
DATA: IT_FILE TYPE TABLE OF T_FILE, " 内部テーブル
      WA_FILE TYPE T_FILE.
DATA: W_FILE TYPE RLGRAP-FILENAME.

WA_FILE-VAL1 = '1'.
WA_FILE-VAL2 = '2'.
WA_FILE-VAL3 = '3'.
APPEND WA_FILE TO IT_FILE.

W_FILE = 'C:\temp\download.XLSX'.

CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
  EXPORTING
*   I_FIELD_SEPERATOR          =
*   I_LINE_HEADER              =
    I_FILENAME                 = W_FILE
  TABLES
    I_TAB_SAP_DATA             = IT_FILE
* CHANGING
*   I_TAB_CONVERTED_DATA       =
* EXCEPTIONS
*   CONVERSION_FAILED          = 1
*   OTHERS                     = 2
          .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Typeの定義方法はこちらを参照
Dataの定義方法はこちらを参照
テキストファイルを操作する場合はこちらを参照
アプリケーションサーバーのファイルを操作する場合はこちらを参照