ABAP 自定义EXCEL TXT文档导出

一、选择导出的文件路径,随后把数据写进excel中

DATA: l_path TYPE string.
DATA: l_filename TYPE string.
DATA: l_fullpath TYPE string.
 

CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = '请选择本地文件' "对话框的标题
default_extension = 'XLS' "默认的文件后缀名
* default_filename = 'defaultfilename' "默认打开的文件名
* file_filter = 'Excel文件(*.XLSX)|*.XLSX|全部文件 (*.*)|*.*|' "文件打开的filter
file_filter = 'XLS文件(*.XLS)|全部文件 (*.*)|*.*|' "文件打开的filter
* INITIAL_DIRECTORY = "初始化的目录
* MULTISELECTION = "是否可以同时打开多个文件
* WITH_ENCODING =
CHANGING
filename = l_filename "文件名 可自定义(下面函数使用,用path会dump
path = l_path "选择的路径
fullpath = l_fullpath "选择的路径+文件名(下面函数使用,用path会dump
* USER_ACTION =
* FILE_ENCODING =
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
invalid_default_file_name = 4
OTHERS = 5.
 

二、数据写入excel中导出

DATA:BEGIN OF t_fieldnames OCCURS 0,
name TYPE char20,
END OF t_fieldnames.
TYPES: BEGIN OF ty_data,
name TYPE char20,
END OF ty_data.
DATA: lt_data TYPE TABLE OF ty_data,
ls_data TYPE ty_data.
 

t_fieldnames-name = '姓名'.
APPEND t_fieldnames.

ls_data-name = '张某'.
APPEND ls_data TO lt_data.
 

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
filename = l_fullpath
filetype = 'DAT'
"这里一般用DAT,如果用ASC则1000-不会显示为-1000,而dat会显示为-1000,如果用DBF则不会有缩进,
* 即字符前面的空格会被除去,而且字符的前导0也会输出。
* APPEND = ' '
write_field_separator = 'X' "列由制表符分隔 该参数仅对文件类型值ASC、DAT和IBM有意义;对于DAT,它是隐式设置的。
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* write_lf = 'X' "每一行的结尾处插入行分隔符
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
no_auth_check = 'X'
codepage = '8404' "gbk格式
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
* SHOW_TRANSFER_STATUS = ABAP_TRUE
* VIRUS_SCAN_PROFILE = '/SCET/GUI_DOWNLOAD'
* IMPORTING
* FILELENGTH =
TABLES
data_tab = lt_data
fieldnames = t_fieldnames[]
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 '导出异常' TYPE 'E'.
ENDIF.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值