读取单元长度为>的电子表格数据。 itab中有32个字符

时间:2014-07-15 18:42:28

标签: spreadsheet abap ole

我正在尝试将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.

1 个答案:

答案 0 :(得分:0)

正如我在similar question中所述,请使用FM FILE_READ_AND_CONVERT_SAP_DATA。它允许读取长度最多为256个字符的单元格。