abap 动态导出excel表
时间: 2023-07-21 11:06:41 浏览: 77
ABAP可以使用函数模块GUI_DOWNLOAD和ALSM_EXCEL_TO_INTERNAL_TABLE来动态导出Excel表。
首先,使用ALSM_EXCEL_TO_INTERNAL_TABLE函数将数据导入到内部表中。以下是一个简单的例子:
```
DATA: it_data TYPE STANDARD TABLE OF mara,
wa_data TYPE mara.
SELECT * FROM mara INTO TABLE it_data.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = 'example.xlsx'
i_begin_col = 'A'
i_begin_row = 1
i_end_col = 'D'
i_end_row = 1000
TABLES
intern = it_data
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
others = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
```
然后,使用函数模块GUI_DOWNLOAD将内部表中的数据导出到Excel文件中。以下是一个简单的例子:
```
DATA: it_data TYPE STANDARD TABLE OF mara,
wa_data TYPE mara.
SELECT * FROM mara INTO TABLE it_data.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = 'example.xlsx'
i_begin_col = 'A'
i_begin_row = 1
i_end_col = 'D'
i_end_row = 1000
TABLES
intern = it_data
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
others = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'example.xlsx'
filetype = 'ASC'
write_field_separator = ' '
TABLES
data_tab = it_data
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
others = 22.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
```
在这些例子中,使用了内部表mara来存储数据,将数据导入到Excel文件中。你可以根据需要更改内部表和字段名称。