abap中有多个函数处理上传的excel文档中的数据,记录数据的信息(行、列、值)。
如,函数KCD_EXCEL_OLE_TO_INT_CONVERT:
data: lt_data_in_file type table of kcde_cells,
ls_data_in_file type kcde_cells.
call function 'KCD_EXCEL_OLE_TO_INT_CONVERT'
exporting
filename = g_file "上传文件名(如:C:\Users\Chen\Upload.xlsx)
i_begin_col = 1
i_begin_row = 1
i_end_col = 256
i_end_row = 65535
tables
intern = lt_data_in_file
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
* IF sy-subrc <> 0.
* MESSAGE e160.
* ENDIF.
我们将数据以行、列、值的方式存储在内表lt_data_in_file中。
这里需要注意的是:这里的值存储的文本长度为32。
所以当你上传的数据值长度超过32的时候,它就自动截取32个文本;
下面这个函数ZALSM_EXCEL_TO_INTERNAL_TABLE,可以接收50个上传字符:
data: lt_data_in_file type table of zalsmex_tabline,
ls_data_in_file type zalsmex_tabline.
call function 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = p_file "上传文件名
i_begin_col = '1'
i_begin_row = '1'
i_end_col = '256'
i_end_row = '10000'
tables
intern = lt_data_in_file.
* if sy-subrc <> 0.
** Implement suitable error handling here
* endif.
--the end--