我正在尝试将Excel文件读入内部表格,其单元格值超过32个字符。我正在使用函数KCD_EXCEL_OLE_TO_INT_CONVERT来读取文件。 我尝试使用SE37和SE80复制功能模块和表,但它不会让我用名为ROW的值保存表。 有没有更好的功能模块我没有看到或有没有办法我可以制作表和FM的Z_副本,以允许我更改kcde_cells格式表中的值列的长度? 我的程序除了读取第33个字符以外的字符外,还可以进行各种操作,所以我知道剩下的功能都很好。我只需要将读取值的长度设置得更长,以适应更长的单元格内容。
编辑:添加用于上传文件的代码。
CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
EXPORTING
filename = infile "Input file.
i_begin_col = st_col
i_begin_row = st_row
i_end_col = e_col
i_end_row = e_row
TABLES
intern = ttab "Internal table for storing the Excel data.
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
FORMAT COLOR COL_BACKGROUND INTENSIFIED.
WRITE:/ 'Error Uploading file'.
EXIT.
ENDIF.
IF ttab[] IS INITIAL. "Internal table is empty.
FORMAT COLOR COL_BACKGROUND INTENSIFIED.
WRITE:/ 'No Data Uploaded'.
EXIT.
ELSE.
SORT ttab BY row col.
LOOP AT ttab.
MOVE ttab-col TO index.
ASSIGN COMPONENT 'ROW' OF STRUCTURE itab TO <fs>.
MOVE ttab-row TO <fs>.
ASSIGN COMPONENT 'COL' OF STRUCTURE itab TO <fs>.
MOVE ttab-col TO <fs>.
ASSIGN COMPONENT 'VALUE' OF STRUCTURE itab TO <fs>.
MOVE ttab-value TO <fs>.
APPEND itab.
CLEAR itab.
ENDLOOP.
ENDIF.
答案 0 :(得分:0)
正如我在similar question中所述,请使用FM FILE_READ_AND_CONVERT_SAP_DATA
。它允许读取长度最多为256个字符的单元格。