通过SAPGUI加载具有长单元格的Excel文件

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

我知道有几个function模块可以这样做,但是它们被限制为每个单元32或40或50个字符的单元大小。

是否有function模块或类/方法,让我读更长的单元格的Excel文件? 更长的意思是:string或由调用者定义或至less80。

编辑

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

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

你是对的,function模块“ALSM_EXCEL_TO_INTERNAL_TABLE”只能pipe理50个字符。 在这里,一个标准的select就是使用我已经使用过的函数模块'GUI_UPLOAD',但是在这种情况下,你必须将excel文件转换为一个cvs文件,这不是你真正想要的。

另一种方法是根据这个链接创build一个“ALSM_EXCEL_TO_INTERNAL_TABLE”副本,然后创build一个“ALSMEX_TABLINE”结构的副本。

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

我还没有尝试过这个解决scheme,但也许可以为你工作。

希望能帮助到你。

你可以使用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.