ABAP OLE程式DEMO
REPORTYYHD_OLE.
TYPES:BEGINOFTY_UPLOAD,"接收excel的結構
BUKRSTYPECHAR50,"公司程式碼
ANLN1TYPECHAR50,"資產號
GGJAHRTYPECHAR50,"年度
AFPERTYPECHAR50,"月份
GSTZAHLTYPECHAR50,"總量
STZAHLTYPECHAR50,"實際用量
ENDOFTY_UPLOAD.
TYPES:BEGINOFTY_CHECK_UPLOAD,"接收資料處理後的結構
BUKRSTYPEBUKRS,
ANLN1TYPEANLN1,
GGJAHRTYPEGGJAHR,
AFPERTYPEAFPER,
GSTZAHLTYPEGSTZAHL,
STZAHLTYPESTZAHL,
ENDOFTY_CHECK_UPLOAD.
DATA:LT_UPLOADTYPETABLEOFTY_UPLOAD,"接收excel的內表
LS_UPLOADTYPETY_UPLOAD,"接收excel的工作區
P_BUKRSTYPECHAR4,"用於對公司程式碼做檢查
LV_BOOLEANTYPEBOOLEAN,"檔案路徑是否存在返回結果
LT_CHECK_UPLOADTYPETABLEOFTY_CHECK_UPLOAD,"接收資料處理後的內表
LS_CHECK_UPLOADTYPETY_CHECK_UPLOAD,"接收資料處理後的工作區
LT_LINESTYPETABLEOFALSMEX_TABLINE,"接收Excel資料的表
LS_LINESTYPEALSMEX_TABLINE,
LV_RCTYPEI,"將內表資料放到excel剪下板操作的返回程式碼
LT_FILE_TABLETYPEFILETABLE,"接收上傳檔案路徑用
LS_FILE_TABLETYPEFILE_TABLE,
GS_LAYOTYPELVC_S_LAYO,"ALV顯示畫面用
GT_FCATTYPELVC_T_FCAT."ALV欄位格式設定用
"定義下載模板相關資料
DATA:APPLICATIONTYPEOLE2_OBJECT,"excelobject
WORKBOOKTYPEOLE2_OBJECT,"excelworkbookobjcet
SHEETTYPEOLE2_OBJECT,"workbooksheetobject
COLUMNSTYPEOLE2_OBJECT,"sheetcolobjcet
ROWSTYPEOLE2_OBJECT,"sheetrowobjcet
RANGETYPEOLE2_OBJECT,"range
RANGE1TYPEOLE2_OBJECT,"range1
FONTTYPEOLE2_OBJECT,"font
CELLTYPEOLE2_OBJECT,"cell
CELL1TYPEOLE2_OBJECT,"cell1
SHEET1TYPEOLE2_OBJECT,"workbooksheetobject
BORDERSTYPEOLE2_OBJECT."borders
SELECTION-SCREENBEGINOFBLOCK1."選擇畫面
PARAMETERS:GV_PATHTYPECHAR255.
SELECTION-SCREENENDOFBLOCK1.
INITIALIZATION.
ATSELECTION-SCREENONVALUE-REQUESTFORGV_PATH."給路徑設定f4幫助
PERFORMFRM_SCR_F4CHANGINGLT_FILE_TABLE.
*PERFORMFRM_CHECK_FILEPATHUSINGlv_path."檢查路徑是否正確
START-OF-SELECTION.
PERFORMFRM_UPLOAD_EXCEL."將excel資料匯入到表中
*&---------------------------------------------------------------------*
*&FormSCR_F4
*&---------------------------------------------------------------------*
*text
*----------------------------------------------------------------------*
*<--P_LT_FILE_TABLEtext
*----------------------------------------------------------------------*
FORMFRM_SCR_F4CHANGINGP_LT_FILE_TABLE.
CALLMETHODCL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE='FileSelected'
FILE_FILTER='MicrosoftExcel(*.XLS;*.XLSX;*.XLSM)|*.XLS;*.XLSX;*.XLSM|'"'Execel(*.xls,*.xlsx)|*.XLS*'
INITIAL_DIRECTORY='C:\'
CHANGING
FILE_TABLE=LT_FILE_TABLE
RC=LV_RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED=1
CNTL_ERROR=2
ERROR_NO_GUI=3
NOT_SUPPORTED_BY_GUI=4
OTHERS=5.
IFSY-SUBRC<>0.
*Implementsuitableerrorhandlinghere
ENDIF.
READTABLELT_FILE_TABLEINTOLS_FILE_TABLEINDEX1.
IFSY-SUBRCEQ0.
GV_PATH=LS_FILE_TABLE-FILENAME.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&FormGET_FILEPATH
*&---------------------------------------------------------------------*
*text
*----------------------------------------------------------------------*
*-->p1text
*<--p2text
*----------------------------------------------------------------------*
FORMFRM_CHECK_FILEPATHUSINGLV_PATH."檢查路徑是否正確
CALL