背景

做了一个批导程序,用于数据导入,为了方便用户使用,做了一个对应的导出程序,两者模板一致,这样用户需要修改数据时,先导出系统原有的,然后在这个基础上修改,再执行导入程序即可。

原理

读取Excel模板,并用开源库abap2xlsx完成编辑。

示例代码

data:lt_mime_data type table of w3mime,ls_id        type wwwdataid,ls_key       type wwwdatatab.
data:lv_string       type string,lv_xstring      type xstring,lv_input_length type i.ls_key-relid ='MI'.
ls_key-objid = 'ZMDGR019'."模板ID
call function 'WWWDATA_IMPORT'exportingkey               = ls_keytables
*   HTML              =mime              = lt_mime_dataexceptionswrong_object_type = 1import_error      = 2others            = 3.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.select single value
from  wwwparams
where  relid       eq @ls_key-relid
and    objid       eq @ls_key-objid
and name eq 'filesize'
into @data(lv_para_value).lv_input_length = lv_para_value.call function 'SCMS_BINARY_TO_XSTRING'exportinginput_length = lv_input_length
*   FIRST_LINE   = 0
*   LAST_LINE    = 0importingbuffer       = lv_xstringtablesbinary_tab   = lt_mime_dataexceptionsfailed       = 1others       = 2.
if sy-subrc <> 0.
* Implement suitable error handling here
endif."lv_xstring = lv_string.
data: reader          type ref to zif_excel_reader,lo_excel_writer type ref to zif_excel_writer.create object reader type zcl_excel_reader_2007.
data(lo_excel) = reader->load( i_excel2007 =  lv_xstring ).data: lv_file      type xstring,lv_bytecount type i,lt_file_tab  type solix_tab.data(lo_worksheet) = lo_excel->get_active_worksheet( ).
*  lo_worksheet->set_title( ip_title = 'Sheet1' ).
lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = 'Hello world' ).create object lo_excel_writer type zcl_excel_writer_2007.
lv_file = lo_excel_writer->write_file( lo_excel )." Convert to binary
call function 'SCMS_XSTRING_TO_BINARY'exportingbuffer        = lv_fileimportingoutput_length = lv_bytecounttablesbinary_tab    = lt_file_tab.cl_gui_frontend_services=>gui_download(
exportingbin_filesize = lv_bytecountfilename     = 'C:\BP export.xlsx'filetype     = 'BIN'
changingdata_tab     = lt_file_tab ).

ABAP读取SMW0 Excel模板并写入数据相关推荐

  1. Php生成货运交接单excel表,PHPExcel读取文件excel模板文件导出数据信息

    在使用PHPExcel导出数据的时候,我们会碰到有时候导出的excel的格式是比较复杂的,所以我们可以通过一个excel预先排版好的模板文件,用户PHPExcel读取该文件,填充内容就行了,这样处理非 ...

  2. POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表

    POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...

  3. linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据

    Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...

  4. SAP ABAP(一个简单的excel模板下载与数据导入demo)

    文章目录 备忘 一.excel模板 二.代码 如下: 总结 备忘 excel模板下载与数据上传处理demo (选择屏幕添加按钮,F4选择文件,模板下载,读取excel数据) 一.excel模板 共两个 ...

  5. Java向pdf模板中写入数据并在模板之后添加新的表格内容

    场景:我们经常会需要用代码生成pdf文件,涉及到复杂的内容也可以选用先自己制作pdf模板,再用代码去读取,动态数据部分的内容无法用模板实现的就要用Java代码去实现 需求:生成如下的pdf 实现思路: ...

  6. 在python中创建Excel文件并写入数据

    来源:<在python中创建Excel文件并写入数据> python中的包xlwt和xlsxwriter都是比较方便创建excel文件并写入数据的. xlwt中: 通过xlwt.Workb ...

  7. Excel 写入复制模板,写入数据并下载

    /**      * 生成excel并下载      */     public void exportExcel(){                  File newFile = createN ...

  8. 使用POI读取EXCEL模板并填充数据,上传至腾讯云储存桶

    读取EXCEL模板,并填充数据生成文件 前言 一.POI导入 二.具体实现 1.制作我们的模板 2.读取模板来生成新的EXCEL 3.查看生成结果 三,传到腾讯云储存桶里 1.导入COS依赖 2.写个 ...

  9. python xlwt写入excel_python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

最新文章

  1. android contentresolver权限,求助关于getcontentresolver().query()
  2. 在C#中应用哈希表(Hashtable)
  3. CloudStats :一款SaaS 服务器监控工具
  4. buu [BJDCTF 2nd]灵能精通-y1ng
  5. Oracle客户端安装
  6. 属性property
  7. 简单排序(插入排序法)
  8. el表达式字符串与变量拼接
  9. Go - 学习/实践
  10. OrCAD PSpice添加Spice模型——Cadence 17.4
  11. 软件项目管理的常见问题
  12. HTML基础标签代码实例
  13. 2021年危险化学品生产单位安全生产管理人员最新解析及危险化学品生产单位安全生产管理人员证考试
  14. Windows自带的远程协助工具(非远程桌面,类比QQ远程桌面)
  15. iOS Presenting view controllers on detached view controllers is discouraged
  16. MySQL中的竖列变横列
  17. unity 捏脸相关
  18. python hasattr() getattr() setattr()函数的使用
  19. 一个有潜在危险的要求。从客户端中检测到(ctl00$ $ $ contentplaceholder2submit1
  20. END-TO-END DNN BASED SPEAKER RECOGNITION INSPIRED BY I-VECTOR AND PLDA

热门文章

  1. Nmap扫描原理(上)
  2. POJ 3259 Wormholes SPFA判负环
  3. Unity笔记-25-简单的商城系统数据库操作
  4. Ubuntu一马当先,冲锋在前
  5. 2023-01-20 网工进阶(三十九)MPLS 虚拟专用网络---概述、路由交互、CE接入PE方法、基本组网方案详解、团体属性、防环、MCE组网、伪连接方案、跨域组网详解、各种组网方案配置举例
  6. 商务人士邮箱推荐?高大上邮箱来了!
  7. 【小白学java】D33》》》网络编程 之 通信协议、分类 三要素 UDP网络通信(常用类,案例) TCP网络通信
  8. 给现有的图片追加图片特效
  9. 【zigbee】开启及清除NV_RESTORE信息的方法
  10. ROS在roslaunch时,提示“is neither a launch file in package”或TAB时没有补全