Z表數據EXCEL導入

很多項目都有這種需求,雖然別人用的各有不同,不過閑來無事,還是自己搞了一個出來。基于EXCEL的導入。

?

?

*&---------------------------------------------------------------------*
*& Report  ZLY_UPLOAD_TABLE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT ZUPLOAD_TABLE.
TABLES:RSRD1.
TYPE-POOLS:ABAP.FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,<DYN_WA>,<DYN_FIELD>.
DATA: DY_TABLE TYPE REF TO DATA,DY_LINE  TYPE REF TO DATA,XFC      TYPE        LVC_S_FCAT,IFC      TYPE        LVC_T_FCAT.DATA : GT_EXCEL_T TYPE         ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,GS_EXCEL_T LIKE LINE OF GT_EXCEL_T.
DATA: GC_FIELDVALUE TYPE FIELDVALUE,  "字符值GC_FLDNAME    TYPE FIELDNAME.   "字段名SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_TBMA TYPE RSRD1-TBMA_VAL,P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK01.AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.PERFORM FRM_GET_FILEPATH.START-OF-SELECTION.CHECK P_TBMA IS NOT INITIAL.CHECK P_FILE IS NOT INITIAL.PERFORM PRM_GET_TAB_STRC.PERFORM PRM_GET_EXCEL.PERFORM PRM_UPDATA_TAB.
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_GET_FILEPATH .CALL FUNCTION 'WS_FILENAME_GET'EXPORTINGMASK             = ',Excel(*.xls),*.XLS,*.XLSX,'TITLE            = '選擇文件'(100)IMPORTINGFILENAME         = P_FILEEXCEPTIONSINV_WINSYS       = 1NO_BATCH         = 2SELECTION_CANCEL = 3SELECTION_ERROR  = 4OTHERS           = 5.IF SY-SUBRC <> 0."      MESSAGE e100(zdev) WITH '選擇文件出錯!'(007).ENDIF.
ENDFORM.                    " FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*&      Form  PRM_GET_TAB_STRC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_GET_TAB_STRC .DATA:GT_TABLE TYPE DDFIELDS,GS_TABLE TYPE DFIES.CALL FUNCTION 'CATSXT_GET_DDIC_FIELDINFO'EXPORTINGIM_STRUCTURE_NAME = P_TBMAIMPORTINGEX_DDIC_INFO      = GT_TABLEEXCEPTIONSFAILED            = 1OTHERS            = 2.IF SY-SUBRC <> 0.ENDIF.LOOP AT GT_TABLE INTO GS_TABLE.CLEAR XFC.XFC-FIELDNAME = GS_TABLE-FIELDNAME .XFC-INTTYPE = GS_TABLE-INTTYPE.XFC-INTLEN = GS_TABLE-LENG.XFC-DECIMALS = GS_TABLE-DECIMALS.APPEND XFC TO IFC.ENDLOOP.CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLEEXPORTINGIT_FIELDCATALOG = IFCIMPORTINGEP_TABLE        = DY_TABLE.ASSIGN DY_TABLE->* TO <DYN_TABLE>.CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.ASSIGN DY_LINE->* TO <DYN_WA>.
ENDFORM.                    " PRM_GET_TAB_STRC
*&---------------------------------------------------------------------*
*&      Form  PRM_GET_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_GET_EXCEL .IF P_FILE IS NOT INITIAL.
*將excel數據傳入內表CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGFILENAME    = P_FILEI_BEGIN_COL = '1'I_BEGIN_ROW = '2'I_END_COL   = '300'I_END_ROW   = '50000'TABLESINTERN      = GT_EXCEL_T.ENDIF.IF GT_EXCEL_T[] IS NOT INITIAL.LOOP AT GT_EXCEL_T INTO GS_EXCEL_T.AT NEW ROW.CLEAR <DYN_WA>.ENDAT.IF <DYN_WA> IS INITIAL.ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.IF SY-SUBRC = 0.<DYN_FIELD> = SY-MANDT.ENDIF.ENDIF.GS_EXCEL_T-COL = GS_EXCEL_T-COL + 1.GC_FIELDVALUE = GS_EXCEL_T-VALUE.CONDENSE GC_FIELDVALUE.ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.IF SY-SUBRC = 0.<DYN_FIELD> = GC_FIELDVALUE.ENDIF.AT END OF ROW.APPEND <DYN_WA> TO <DYN_TABLE>.ENDAT.ENDLOOP.ENDIF.
ENDFORM.                    " PRM_GET_EXCEL
*&---------------------------------------------------------------------*
*&      Form  PRM_UPDATA_TAB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPDATA_TAB .MODIFY (P_TBMA) FROM TABLE <DYN_TABLE>.IF SY-SUBRC = 0.MESSAGE '導入成功' TYPE 'S'.ELSE.MESSAGE '導入失敗' TYPE 'S' DISPLAY LIKE 'E'.EXIT.ENDIF.
ENDFORM.                    " PRM_UPDATA_TAB

?

最簡單的一種方式,輸入參數:表名,EXXCEL(EXCEL里數據按表的數據元素順序,可不加客戶端)

?

轉載于:https://www.cnblogs.com/sapSB/p/4815318.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256699.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

運動軌跡規劃算法專欄

1、全局局部路徑規劃&#xff0c;解決低速簡單障礙物環境的路徑規劃功能

現代制造工程課堂筆記06-集成電路制造工程

中國主要是進行了集成電路的下游環節&#xff0c;即是封裝與測試

悖論:早期互聯網項目,是否需要技術含量?

在自己創業、看別人創業、和別人一起創業的過程中&#xff0c;一直有個“悖論”困惑著我&#xff0c;讓我很不舒服。因為如鯁在喉&#xff0c;所以不吐不快。悖論 早期互聯網項目&#xff0c;通常來說&#xff0c;技術難度不算大&#xff1f; 從創業者角度來講&#xff0c;最…

資源打包后項目中的文件

一.資源打包Assets.car1.如果部署版本>8.0,并且圖片被放入到Images.xcassets,圖片打包之后會被放到Assets.car,并且是有對圖片資源進行壓縮.2.如果部署版本<8.0,并且圖片被放入到Images.xcassets,圖片會被放到MainBundle里面,并且不會對圖片進行壓縮處理.3.如果圖片是直接…

現代制造工程-考試復習02

1.說明&#xff1a;標有重點的是會出簡答題或者計算題&#xff0c;而未標注的則是會出選擇題和填空題 2.題型&#xff1a;判斷、選擇、簡答、論述

VINS狀態估計篇-視覺sfm初始化

1、通過判斷當前幀和滑動窗口中&#xff0c;平均視差>30

TP_字母函數

1. A() A函數用于實例化控制器 格式&#xff1a;[資源://][模塊/]控制器 A($name,$layer,$level) param string $name 資源地址 param string $layer 控制層名稱 param integer $level 控制器層次 return Controller|false 2. B() 執行某個行為 B($name,$tag,&$paramsNULL)…

父div高度和寬度的應用

這是我自己在仿騰訊首頁時遇到的布局問題&#xff0c;在此記錄&#xff0c;如果有錯&#xff0c;歡迎指正。 首先是對齊問題&#xff0c;可以把父div的高度設置為0&#xff0c;然后調整padding值&#xff0c;這樣可以批量調整子div們和其他父div的相對高度。 這是父div的樣式 .…

flume package遇到的問題

flume打包遇到的一些問題 1.ipc兼容性問題&#xff0c;線上使用2.3.0的hdfs&#xff0c;但是打包時默認為1.2.1的 123408 Apr 2015 19:38:25,122 WARN [SinkRunner-PollingRunner-DefaultSinkProcessor] (org.apache.flume.sink.hdfs.HDFSEventSink.process:455) - HDFS IO e…

有限元筆記06-三維實體單元

多個四面體單元組合起來可以形成六面體

python讀取excle表格數據,將數據編輯到圖像上工程

這里寫目錄標題一級目錄&#xff1a;python讀取excel表格內容二級目錄&#xff1a;python如何分割字符串三級目錄&#xff1a;python如何在圖像的相應位置編輯文字或者字母、數字一級目錄&#xff1a;python讀取excel表格內容 二級目錄&#xff1a;python如何分割字符串 三級…

暑假計劃

保研的事還是要聽天由命。日常拜錦鯉大王。 生產實習呢....估計也是要水過去。等塵埃落定后再補補這些項目吧。 字符串&#xff1a; 1.后綴數組專題&#xff08;知乎專欄&#xff09; 2.熟練AC自動機 dp&#xff1a; 3.狀壓dp輪廓線dp入門 4.數位dp 數學&#xff1a; 5.FFT容斥…

使用junit測試用例

通常只會使用junit測試非main方法&#xff0c;在我眼里就是程序入口實現而已。今天&#xff0c;發現原來可以測試類。 針對mybatis練習。在需要測試的UserDaoImpl類上右鍵&#xff0c;新建一個junit case,位置可以放到新創建的source folder :test里面。 選擇需要測試的方法&am…

H5頁面適配所有iPhone和安卓機型的六個技巧

1、viewport 簡單粗暴的方式&#xff1a; <meta name"viewport" content"width320,maximum-scale1.3,user-scalableno"> 直接設置viewport為320px的1.3倍&#xff0c;將頁面放大1.3倍。 為什么是1.3&#xff1f; 目前大部分頁面都是以320px為基準的布…

最優化作業第6章——無約束多維非線性規劃方法

代碼&#xff1a; #導入模塊 from sympy import * import sympy as sp #將導入的模塊重新定義一個名字以便后續的程序進行使用 from numpy import * import numpy as np#定義主要的處理函數 def main():#x1,x2&#xff1a;目標函數變量&#xff1b;alpha&#xff1a;步長因子…

linux的進程與庫之間的通信兩種方式

文章目錄前言一、進程A與算法庫b的通信方式之一&#xff1a;動態dlopen加載算法庫b&#xff0c;編譯的時候是需要加載該頭文件就可以&#xff0c;無需連接該算法庫b具體的實施細節&#xff1a;二、進程A與算法庫b的通信方式之二&#xff1a;進程A編譯的時候連接上算法庫b和該頭…

Day03——類、值和對象

1.js數字-NaN和Infinity 1、在js中&#xff0c;有一種特殊的數值&#xff0c;叫做NaN&#xff08;Not a Number&#xff09;&#xff0c;表示本來要返回數值的操作卻未返回數值的情況&#xff0c;例如0除以0的操作&#xff0c;在其它語言中會報錯誤或異常&#xff0c;而在js中&…

ASIHTTPRequest詳解 [經典3]

大文件斷點續傳 0.94 以后支持大文件的斷點下載&#xff0c;只需要設置&#xff1a; [ request setAllowResumeForFileDownloads:YES ]; [ request setDownloadDestinationPath:downloadPath ]。 就可以了。 ASIHTTPRequest會自動保存訪問過的&#xff35;&#xff32;&#xf…

python矩陣相關操作

1.創建mxn的矩陣 import numpy as np from numpy import *x np.array([[2,1],[1,2],[2,2])#創建了一個3x2的數組 x np.mat(x)#將數組轉化為矩陣2.數組與矩陣的轉化 from numpy import * import numpy as np#數組轉化為矩陣 matrix np.mat(array)#矩陣轉化為數組 array ma…

關于F5的一些基礎話題

負載均衡器通常稱為四層交換機或七層交換機。四層交換機主要分析IP層及TCP/UDP層&#xff0c;實現四層流量負載均衡。七層交換機除了支持四層負載均衡以外&#xff0c;還有分析應用層的信息&#xff0c;如HTTP協議URI或Cookie信息。一、F5配置步驟&#xff1a;1、F5組網規劃(1)…