一个上传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 ,
- "Beginning row of excel file
- gc_begin_col TYPE i VALUE ,
- "Beginning column of excel file
- gc_end_row TYPE i VALUE ,
- "Ending row of excel file
- gc_end_col TYPE i VALUE .
- "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 = "gc_begin_row'
- i_begin_row = "gc_begin_col
- i_end_col = "gc_end_row
- i_end_row = "gc_end_col
- TABLES
- intern = lt_excel
- * EXCEPTIONS
- * INCONSISTENT_PARAMETERS = 1
- * UPLOAD_OLE = 2
- * OTHERS = 3
- .
- IF sy-subrc <> .
- * 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 = .
- 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
一个上传EXCEL导入示例的更多相关文章
- js上传Excel文件
一.问题 需要在项目里添加一个上传excel文件的功能,因为其他同样的后台里面有上传文件的功能,第一反应就是想着直接用.了解了一下发现它是利用bootstrap的fileinput实现的,但是我怎么都 ...
- asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL
效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...
- 使用ocupload和POI一键上传Excel并解析导入数据库
使用的工具如下: JQuery ocupload jquery.ocupload-1.1.2.js Apache POI poi-3.9.jar 如果是Maven项目添加依赖如下: <depe ...
- jsp+servlet上传excel并将数据导入到数据库表的实现方法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- java上传excel到后台解析入库
背景:最近需要做一个excel模板导入的功能,以便用户可以自己增删改查数据,当然,只有特别的用户才能有此权限,捋了捋思路,还是从前端写起 实现: 页面最后的效果如下,可以自己修改,删除,导入导出数据, ...
- EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能
Easyui上传文件案例 第一步:要想使用OCUpload首先前端需要导入js包 <script type="text/javascript" src=&qu ...
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...
- POI上传Excel的小问题处理
package com.platform.utils.excel; import com.platform.utils.RRException; import org.springframework. ...
随机推荐
- 利用 操作符特性 代替if判断语句
参考:http://blog.csdn.net/speedme/article/details/22916181 1.&&的判断特性 #include <stdio.h> ...
- emoji表情键盘 回退删除方法
- 那些年搞不懂的"协变"和"逆变"
博主之前也不是很清楚协变与逆变,今天在书上看到了有关于协变还是逆变的介绍感觉还是不太懂,后来看了一篇园子里面一位朋友的文章,顿时茅塞顿开.本文里面会有自己的一些见解也会引用博友的一些正文,希望通过本篇 ...
- Ruby学习-第二章
第二章 类继承,属性,类变量 1.如何声明一个子类 class Treasure < Thing 这样Thing类中的属性name,description都被Treasure继承 2.以下三种方 ...
- Codeforces 85D Sum of Medians(线段树)
题目链接:Codeforces 85D - Sum of Medians 题目大意:N个操作,add x:向集合中加入x:del x:删除集合中的x:sum:将集合排序后,将集合中全部下标i % 5 ...
- C#如何在panl控件上添加Form窗体
. if (treeView1.SelectedNode.Text == "个人信息") { Form1 f4 = new Form1(); f4.TopLevel = false ...
- 幻世(OurDream)2D图形引擎使用教程11——播放媒体文件(1)
声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst 谢谢合作! 播放媒体是 ...
- java--实例成员 & 静态成员
class run{ static String str1 = "静态变量"; String str2 = "非静态变量"; public static voi ...
- vc根据域名获取IP地址 gethostbyname()函数
以下是VC Socket初始化时用到的两个函数 一.WSAStartup函数 int WSAStartup ( ...
- two sets of Qt binaries into the same process的解决办法
突然出现了这样问题,吓死我,然后只是把原来编译好的app里面所有的东西删除再编译就好了. 如果删除后不行,可以试试后面的截图所说,反正我是没有试过的 Starting /Qtwork/build-te ...