说道SAP里对EXCEL操作的大概就是上传,下载,显示了。。。

下载:(文档是通过SMW0上传的)注:如果下载的时候需要填充EXCEL的值,。。。请参考另一篇文档,OLE

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
DEFAULT_EXTENSION = 'xlsx'
DEFAULT_FILE_NAME = LC_FILENAME
CHANGING
FILENAME = LC_FILENAME
PATH = LC_PATH
FULLPATH = LC_FULLPATH
EXCEPTIONS
CNTL_ERROR =
ERROR_NO_GUI =
NOT_SUPPORTED_BY_GUI =
OTHERS = .
IF LC_FULLPATH = ''.
MESSAGE '不能打开excel' TYPE 'E'.
ENDIF.
IF SY-SUBRC = .
P_DEST = LC_FULLPATH.
* concatenate p_objid '.XLS' into ls_objnam.
CONDENSE LS_OBJNAM NO-GAPS.
SELECT SINGLE RELID OBJID FROM WWWDATA INTO CORRESPONDING FIELDS OF LO_OBJDATA
WHERE SRTF2 = AND RELID = 'MI' AND OBJID = P_OBJID.
IF SY-SUBRC NE OR LO_OBJDATA-OBJID EQ SPACE.
CONCATENATE '模板文件' LS_OBJNAM '不存在' INTO LS_ERRTXT.
MESSAGE LS_ERRTXT TYPE 'I'.
ENDIF.
LS_DESTINATION = P_DEST.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = LO_OBJDATA
DESTINATION = LS_DESTINATION
IMPORTING
RC = LI_RC.
IF LI_RC NE .
CONCATENATE '模板文件:' LS_OBJNAM '下载失败' INTO LS_ERRTXT.
MESSAGE LS_ERRTXT TYPE 'E'.
ENDIF.
ENDIF.

上传:

选择屏上加个文件路径选择:

SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-.
PARAMETERS:P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK01.

给文件搜索帮助:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM FRM_GET_FILEPATH.
FORM FRM_GET_FILEPATH .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
MASK = ',Excel(*.xls),*.XLS,*.XLSX,'
TITLE = '选择文件'()
IMPORTING
FILENAME = P_FILE
EXCEPTIONS
INV_WINSYS =
NO_BATCH =
SELECTION_CANCEL =
SELECTION_ERROR =
OTHERS = .
IF SY-SUBRC <> .
MESSAGE E100(ZDEV) WITH '选择文件出错!'().
ENDIF.
ENDFORM.

然后就是或许EXCEL内容了

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = ''
I_BEGIN_ROW = ''
I_END_COL = ''
I_END_ROW = ''
TABLES
INTERN = GT_EXCEL_T.

这时候获取的EXCEL行,列,值

数据处理

LOOP AT GT_EXCEL_T INTO GS_EXCEL_T.
AT NEW ROW.
CLEAR:GW_EXCEL.
ENDAT.
CASE GS_EXCEL_T-COL.
WHEN .
GW_EXCEL-LIFNR = GS_EXCEL_T-VALUE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GW_EXCEL-LIFNR
IMPORTING
OUTPUT = GW_EXCEL-LIFNR.
WHEN .
GW_EXCEL-MATNR = GS_EXCEL_T-VALUE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GW_EXCEL-MATNR
IMPORTING
OUTPUT = GW_EXCEL-MATNR.
WHEN .
GW_EXCEL-EKORG = GS_EXCEL_T-VALUE.
WHEN .
GW_EXCEL-WERKS = GS_EXCEL_T-VALUE.
WHEN .
GW_EXCEL-NETPR = GS_EXCEL_T-VALUE.
WHEN .
GW_EXCEL-KPEIN = GS_EXCEL_T-VALUE.
WHEN .
GW_EXCEL-LIFAB = GS_EXCEL_T-VALUE.
WHEN .
* GW_EXCEL-NORBM = GS_EXCEL_T-VALUE.
GW_EXCEL-LIFBI = GS_EXCEL_T-VALUE.
WHEN .
GW_EXCEL-MWSKZ = GS_EXCEL_T-VALUE.
WHEN OTHERS.
ENDCASE. AT END OF ROW.
APPEND GW_EXCEL TO GT_EXCEL.
ENDAT.
ENDLOOP.

这块可以优化,按自己的实际情况来

下载模板,上传EXCEL的更多相关文章

  1. java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)

    使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...

  2. 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的路由方案,与原来的方案在使用上差别不 ...

  3. 一文解决Vue中实现 Excel下载到本地以及上传Excel

    相信大家在项目中经常会遇到一些上传下载文件的相关功能,本文就Excel的相关功能进行简述: 咱直接看代码: <div class="import-main-content"& ...

  4. SMW0上传EXCEL模板时报错无分配给对象***的MIME类型

    在使用SMW0上传照片.声音文件.EXCEL模板等文件时,遇到报错提示,如下图所示: 解决办法:需要先维护 .XLS 文件的MIME TYPE,SMW0 打开如下图所示 选择上图红色框中“WebRFC ...

  5. asp.net core 下载文件,上传excel文件

    下载文件: 代码: 后端代码: public IActionResult DownloadFile() { var FilePath = @"./files/deparment.xlsx&q ...

  6. layui上传Excel更新数据并下载

    前言: 最近做项目遇到了一个需求,上传Excel获取数据更新Excel文档,并直接返回更新完的Excel到前端下载:其实需求并没有什么问题,关键是前端用到的是layui上传组件(layui.uploa ...

  7. java上传excel到后台解析入库

    背景:最近需要做一个excel模板导入的功能,以便用户可以自己增删改查数据,当然,只有特别的用户才能有此权限,捋了捋思路,还是从前端写起 实现: 页面最后的效果如下,可以自己修改,删除,导入导出数据, ...

  8. NPOI 上传Excel功能

    1.首先写一个Excel表格,第一行数据库类型(varchar.date.decimal).第二行数据库类型长度(100.12,4.时间日期为空)2.html 加按钮 { type: "bu ...

  9. Uploadify上传Excel到数据库

    前两章简单的介绍了Uploadify上传插件的基本使用和相关的属性说明.这一章结合Uploadify+ssh框架+jquery实现Excel上传并保存到数据库.         以前写的这篇文章 Jq ...

  10. SpringBoot(十三)_springboot上传Excel并读取excel中的数据

    今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...

随机推荐

  1. QUEEN_BLADE_2D-非常屌-113P

    http://www.cgvoo.com/thread-33670-1-2.html http://blog.sina.com.cn/s/blog_4b92d6070102e7gj.html http ...

  2. scp指令的学习

    http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html scp是linux中功能最强大的文件传输命令,可以实现从本地到远程以及远程到 ...

  3. ajax接收返回值获取不到问题

    function testAsync() { //定义一个全局变量来接受$post的返回值 var result; //用ajax的“同步方式”调用一般处理程序 $.ajax({ url: " ...

  4. python_way day21 Django文件上传Form方式提交,原生Ajax提交字符处啊,Django文件上传之原生Ajax方式、jQuery Ajax方式、iframe方式,Django验证码,抽屉示例,

    python_way day21 1.Django文件上传至Form方式 2.原生Ajax文件上传提交表单 使用原生Ajax好处:不依赖jquery,在发送一个很小的文件或者字符串的时候就可以用原生A ...

  5. MyEclipse启动Tomcat服务器时老是跳到Debug调试上

    window->preferences->Myeclipse->Servers->Tomcat 然后找到你的相应的Tomcat服务器的版本, 选中然后展开其下面的子菜单会发现有 ...

  6. HDU-4514 湫湫系列故事——设计风景线 手动扩栈

    题意:给定一个无向图,首先判定是否成环,然后求一条最长链. 分析:成环用并查集,最长链就是个最简单的树形dp了. #include <cstdlib> #include <cstri ...

  7. Thinking in Java 笔记初衷

    当读到第十章的时候,发现之前读过的内容很难准确的记忆起来,这样给后续的阅读带来了一定的困惑,而之前也没有做适当的可读性的复习笔记,所以发现重新找后续阅读需要的知识点时,是有一定的困难的. 同时在知乎今 ...

  8. Javascript中日期函数的相关操作

    Date对象具有多种构造函数,下面简单列举如下: new Date() new Date(milliseconds) new Date(datestring) new Date(year, month ...

  9. 安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案(原创) (2016-10-29 下午01:56)

    安装64位版Oracle11gR2后发现启动SQL Developer时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径"C:\app\用户名\product ...

  10. 什么是Plist文件

    直接将数据直接写在代码里面,不是一种合理的做法.如果数据经常改,就要经常翻开对应的代码进行修改,造成代码扩展性低 因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据.如果 ...