一个上传EXCEL导入示例

REPORT  ZTEST_UPEXCEL.

data: gt_table type TABLE OF SFLIGHT,
      gs_table like line of gt_table.
DATA:lt_excel TYPE TABLE OF ZSTABLINE.
DATA ls_excel LIKE LINE OF lt_excel.
FIELD-SYMBOLS:<fs>.
CONSTANTS: gc_begin_row TYPE i VALUE 1,
"Beginning row of excel file
           gc_begin_col TYPE i VALUE 1,
           "Beginning column of excel file
           gc_end_row   TYPE i VALUE 999,
           "Ending row of excel file
           gc_end_col   TYPE i VALUE 999.
"Ending column of excel file

PARAMETERS: p_file  LIKE rlgrap-filename.  "定义存放上传文件路径名的变量

initialization.

at selection-screen on  VALUE-REQUEST FOR p_file.   "这个只用在批处理这边
  PERFORM sub_find USING p_file.

start-of-selection.

  CALL FUNCTION ‘ZALSM_EXCEL_TO_INTERNAL_TABLE‘
    EXPORTING
      filename                      = p_file
      i_begin_col                   = 1"gc_begin_row‘
      i_begin_row                   = 1"gc_begin_col
      i_end_col                     = 999"gc_end_row
      i_end_row                     = 999"gc_end_col
    TABLES
      intern                        = lt_excel
* EXCEPTIONS
*   INCONSISTENT_PARAMETERS       = 1
*   UPLOAD_OLE                    = 2
*   OTHERS                        = 3
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
  LOOP AT lt_excel INTO ls_excel.

    ASSIGN COMPONENT ls_excel-col OF STRUCTURE gs_table to <fs>.   "把工作区gs_tab中的字段赋给字段符号,而工作区gs_tab中的字段取决于内表中的列ls_excel-col
    CONDENSE ls_excel-value.                  " 去掉空格
    <fs> = ls_excel-value.
    at end of row.                                    "如果是最后一行就把工作区gs_tab存到内表gt_tab中
      "gs_tab-row = ls_excel-row.
      APPEND gs_table TO gt_table.
      CLEAR: gs_table.

    ENDAT.

  ENDLOOP.

  INSERT SFLIGHT FROM TABLE GT_TABLE ACCEPTING DUPLICATE KEYS.
  IF SY-SUBRC = 0.
    COMMIT WORK.
    MESSAGE ‘维护成功‘ type ‘S‘.

  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  SUB_FIND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_FILE  text
*----------------------------------------------------------------------*
FORM SUB_FIND  USING    P_P_FILE.

*  DATA: LD_DEFAULT_EXTENSION TYPE STRING VALUE ‘CSV‘.
  DATA: LT_FILE_TAB          TYPE FILETABLE.
  DATA: LS_FILE_LINE         TYPE FILE_TABLE.
  DATA: LD_RC                TYPE I,
        LW_TITLE  TYPE STRING,
        LW_FILTER TYPE STRING.

*   变量赋值
  LW_TITLE  = ‘选择文件‘.
  LW_FILTER = ‘Excel文件|*.xl;*.xls;*.xlsx|‘.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE            = LW_TITLE
      FILE_FILTER             = LW_FILTER
      INITIAL_DIRECTORY       = ‘C:\‘
    CHANGING
      FILE_TABLE              = LT_FILE_TAB
      RC                      = LD_RC
    EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR              = 2
      ERROR_NO_GUI            = 3
      NOT_SUPPORTED_BY_GUI    = 4
      OTHERS                  = 5.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    CHECK LD_RC = 1.
    READ TABLE LT_FILE_TAB INTO LS_FILE_LINE INDEX 1.
    CHECK SY-SUBRC = 0.
    MOVE LS_FILE_LINE-FILENAME TO p_file.
  ENDIF.
  " F4_FOR_FILES

ENDFORM.                    " SUB_FIND
时间: 2024-12-17 16:07:38

一个上传EXCEL导入示例的相关文章

js上传Excel文件

一.问题 需要在项目里添加一个上传excel文件的功能,因为其他同样的后台里面有上传文件的功能,第一反应就是想着直接用.了解了一下发现它是利用bootstrap的fileinput实现的,但是我怎么都不能把fileinput插件给加到java的项目里,然后就只能自己用js实现吧.好像也没什么特别的需求. 1)原本的样式不好看,需要和项目一致 2)只上传xls和xlxs的文件 二.代码 <input type="file" id="file" name=&quo

使用ocupload和POI一键上传Excel并解析导入数据库

使用的工具如下:  JQuery ocupload jquery.ocupload-1.1.2.js Apache POI  poi-3.9.jar 如果是Maven项目添加依赖如下: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> J

eclipse中导入jdk源码、SpringMVC注解@RequestParam、SpringMVC文件上传源码解析、ajax上传excel文件

eclipse中导入jdk源码:http://blog.csdn.net/evolly/article/details/18403321, http://www.codingwhy.com/view/799.html. ------------------------------- SpringMVC注解@RequestParam:http://825635381.iteye.com/blog/2196911. --------------------------- SpringMVC文件上传源

C#Excel上传批量导入sqlserver

前台: <x:FileUpload ID="btnUpField" runat="server" Label="上传Excel批量导入用户信息" ShowLabel="true" > </x:FileUpload> <x:Button ID="Button1" Text="上传" runat="server" Icon="Sys

ASP.NET 实现上传EXCEL,利用NOPI操作,转换得到DataTable

这几天正好用到上传Excel,并根据Excel中的数据做相应的处理,故整理以备用. 用到的资源: (1)NOPI 2.2.0.0 可自己官网下载,也可点击:http://pan.baidu.com/s/1jIRxivW (2)用到一些常见处理文件的公共方法类,可以添加到项目中:http://pan.baidu.com/s/1dEWGKNZ 如过上述连接因故无法使用,可在评论留下邮箱,我打包发送过去,如有更好的建议,欢迎指导. 后台的提示方法ShowMsgHelper,根据自己的改写即可. ===

下载不含数据EXCEL的固定表头模版(标准EXCEL只含有列头),然后上传EXCEL.显示成功和上传失败的EXCEL连接

<div id="import" runat="server" visible="false"> Step1:<asp:HyperLink ID="HyperLink1" NavigateUrl="~/CommonTemplate/设备清单模版.xlsx" runat="server">下载模版</asp:HyperLink><br />

abap金税上传EXCEL版

SAP ERP ECC6.0标准功能提供给了金税接口,对于一般的公司来说,这个接口基本也够了. 事务代码:GT_DLN 下载SAP发票信息: 事务代码:GT_ULN 上传金税信息到SAP中: 前提条件:SAP ERP ECC6.0 功能增强包EHp3及以上. 激活业务功能事务代码 SFW5选择业务功能FIN_LOC_CI_1,点击激活按钮. 激活业务功能包后,系统将执行一个后台任务,执行可能需要长达一小时. 参见SAP Note:Note 1290073 – China Golden Tax S

EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能

第一步:要想使用OCUpload首先前端需要导入js包         <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.ocupload-1.1.2.js"></script> 第二步:提供一个上传按钮(本案例用的EasyUi框架) var toolbar = [{                id: 'button-edit'

上传excel数据到数据库中

上传excel表格数据到数据库 导入固定路径下的excel数据到数据库 <form id="disposeFlightDataForm" action="../upload/disposeFlightData" method="post"> <input id="disposeFlightDataButton" type="submit" value="处理航班数据"