从前端加载单元格值大于80个字符的xls

问题描述 投票:0回答:2

我需要通过SAPGUI读取excel文件(不是批量读取,不是从服务器读取)。仅一个工作表/文件,而不是csv文件。

我知道有一些功能模块可以做到这一点,但是每个单元的大小限制为32或40或50个字符。

是否有功能模块或类/方法允许我读取具有较长单元格的excel文件?较长的意思是:字符串或由调用方定义,或至少80。

编辑

我在单元格大小不是那么重要的其他项目中成功使用了ALSM_EXCEL_TO_INTERNAL_TABLE。该模块读入结构ALSMEX_TABLINE,该结构将数据限制为50个字符。

[KCD_EXCEL_OLE_TO_INT_CONVERT读入具有32个字符/单元格的表。

sap abap xls
2个回答
1
投票

是的,功能模块'ALSM_EXCEL_TO_INTERNAL_TABLE'只能管理50个字符。在这种情况下,一种标准的替代方法是使用我曾经使用过的功能模块'GUI_UPLOAD',但是在这种情况下,您必须将excel文件转换为cvs文件,这不是您真正想要的。

根据this link,另一种选择是创建“ ALSM_EXCEL_TO_INTERNAL_TABLE”的副本,然后创建结构“ ALSMEX_TABLINE”的副本。

新结构的结构字段'VALUE'必须更改为所需的长度,然后'ALSM_EXCEL_TO_INTERNAL_TABLE'的副本将使用'ALSMEX_TABLINE'的新结构。

我还没有尝试过这种解决方案,但也许可以为您工作。

希望有帮助。


1
投票

您可以将FILE_READ_AND_CONVERT_SAP_DATA用于该目的。它的输出表单元格限制为256个字符,这对您来说已经足够了。代码示例如下:

TYPES: tv_data(256)  TYPE c,
       BEGIN OF ts_data,
        value_0001 TYPE tv_data,
        ...
        value_0020 TYPE tv_data,
       END OF ts_data,
       tt_data     TYPE TABLE OF ts_data.

DATA: lv_fname TYPE filename-fileintern,
      pt_data TYPE tt_data.

lv_fname = 'C:\test.xls'.
CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
 EXPORTING
  i_filename           = lv_fname
  i_servertyp          = 'OLE2'
  i_fileformat         = 'XLS'
 TABLES
  i_tab_receiver       = pt_data
 EXCEPTIONS
  file_not_found       = 1
  close_failed         = 2
  authorization_failed = 3
  open_failed          = 4
  conversion_failed    = 5
  OTHERS               = 6.

IF sy-subrc <> 0.
* error handling
ENDIF.
© www.soinside.com 2019 - 2024. All rights reserved.