You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECC6 7.00系统能否用cl_gui_frontend_services=>gui_upload加载XLSX到内表?

ECC6 7.00中使用cl_gui_frontend_services=>gui_upload加载XLSX文件的可行性

结论:无法直接通过cl_gui_frontend_services=>gui_upload加载XLSX格式文件到内表

原因说明

cl_gui_frontend_services=>gui_upload在ECC6 7.00版本中仅支持解析文本类格式(如CSV、TXT)以及旧版二进制Excel格式(XLS)。XLSX是基于Open XML的压缩格式,该方法没有内置的解析逻辑,强行上传会得到乱码或无法识别的二进制数据,无法正确映射到内表结构。

替代解决方案

  • 转换文件格式(推荐):让用户将XLSX文件另存为CSV格式,再通过cl_gui_frontend_services=>gui_upload读取。CSV为纯文本格式,兼容性强,易于解析到内表。
  • 使用ALSM_EXCEL_TO_INTERNAL_TABLE函数:该函数支持读取XLS格式,部分兼容保存为XLS兼容模式的XLSX文件,但稳定性较差,不建议用于生产环境。
  • 借助Office COM接口:通过cl_gui_excel类调用本地Excel应用读取XLSX内容,此方案需要客户端安装Excel,且性能依赖客户端环境。

CSV读取示例代码

DATA: lt_internal_table TYPE TABLE OF string,
      lv_file_path TYPE string VALUE 'C:\example.csv'.

CALL METHOD cl_gui_frontend_services=>gui_upload
  EXPORTING
    filename                = lv_file_path
    filetype                = 'ASC'
    has_field_separator     = abap_true  " 按分隔符拆分字段
  CHANGING
    data_tab                = lt_internal_table
  EXCEPTIONS
    file_open_error         = 1
    file_read_error         = 2
    gui_refuse_filetransfer = 4
    OTHERS                  = 19.

IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

内容的提问来源于stack exchange,提问作者ekekakos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:33:10