ABAP存取Excel相關技術的思考
ABAP存取Excel有OLE,DOI,XML好幾種技術啊,試了好多次,發現前兩者總是出很多bug,決心以后只用基于Open XML技術的API和函數了。
類CL_FDT_XL_SPREADSHEET基于XML技術實現,示例代碼如下;當然,SAP官方是不推薦單獨使用這個類的,只限制用于BRF+相關功能,但是目前俺沒遇到大問題;
比較推薦技術是使用開源倉庫ABAP2XLSX,GITHUB上可以找到,一直都有人更新和維護,寫入功能也相當強大。
點擊箭頭查看ABAP FDT類讀取本機Excel代碼
DATA(lv_xlsx_data) = cl_openxml_helper=>load_local_file( excel_path ).
DATA(lo_xlsx_ref) = NEW cl_fdt_xl_spreadsheet(
document_name = excel_path
xdocument = lv_xlsx_data ).
lo_xlsx_ref->if_fdt_doc_spreadsheet~get_worksheet_names(
IMPORTING
worksheet_names = DATA(lt_worksheets) ).
DATA:lr_sheet_data TYPE REF TO data.
FIELD-SYMBOLS:<ft_sheet_data> TYPE INDEX TABLE.
LOOP AT lt_worksheets REFERENCE INTO DATA(lr_worksheet).
DATA(lv_sheet_index) = sy-tabix.
lr_sheet_data = lo_xlsx_ref->if_fdt_doc_spreadsheet~get_itab_from_worksheet(
worksheet_name = lr_worksheet->*
).
IF <ft_sheet_data> IS ASSIGNED.
UNASSIGN <ft_sheet_data>.
ENDIF.
ASSIGN lr_sheet_data->* TO <ft_sheet_data>.
EXIT.
ENDLOOP.
本文來自博客園,作者:長沙鐵道學院-康帥傅,轉載請注明原文鏈接:http://www.rzrgm.cn/break-point/p/17914062.html

浙公網安備 33010602011771號