首页 > 其他分享 >ABAP存取Excel的技术思考

ABAP存取Excel的技术思考

时间:2023-12-19 16:22:51浏览次数:23  
标签:xlsx DATA Excel data ABAP lr worksheet 存取

ABAP存取Excel有OLE,DOI,XML好几种技术啊,试了好多次,发现前两者总是出很多bug,决心以后只用基于Open XML技术的API和函数了。
类CL_FDT_XL_SPREADSHEET基于XML技术实现,示例代码如下;当然,SAP官方是不推荐单独使用这个类的,只限制用于BRF+相关功能,但是目前俺没遇到大问题;
比较推荐的ABAP EXCEL读写技术是使用开源仓库ABAP2XLSX,GIT上可以找到,一直都有人更新和维护,写入功能也相当强大。

点击箭头查看ABAP读取Excel代码
DATA(lv_xlsx_data) = cl_openxml_helper=>load_local_file( excel_path ).
  DATA(lo_xlsx_ref) = NEW cl_fdt_xl_spreadsheet(
        document_name     = excel_path
        xdocument         = lv_xlsx_data ).
  lo_xlsx_ref->if_fdt_doc_spreadsheet~get_worksheet_names(
  IMPORTING
  worksheet_names = DATA(lt_worksheets) ).

  DATA:lr_sheet_data TYPE REF TO data.
  FIELD-SYMBOLS:<ft_sheet_data> TYPE INDEX TABLE.
  LOOP AT lt_worksheets REFERENCE INTO DATA(lr_worksheet).
    DATA(lv_sheet_index) = sy-tabix.
    lr_sheet_data = lo_xlsx_ref->if_fdt_doc_spreadsheet~get_itab_from_worksheet(
    worksheet_name = lr_worksheet->*
    ).
    IF  <ft_sheet_data> IS ASSIGNED.
      UNASSIGN <ft_sheet_data>.
    ENDIF.
    ASSIGN lr_sheet_data->* TO <ft_sheet_data>.
    EXIT.
  ENDLOOP.

标签:xlsx,DATA,Excel,data,ABAP,lr,worksheet,存取
From: https://www.cnblogs.com/break-point/p/17914062.html

相关文章

  • 已删除但未消失的图片(Excel与WPS切换时产生的问题)
    问题:一个完全空的工作簿为何会非常大?问题分析:将工作簿后缀名改成rar,打开..xl/media,可以看到有很多图片,这些图片造成了文件大。进一步的问题:这些图片哪里来的,藏在何处。过程:这是Excel与WPS操作同一工作簿产生的问题。第一步:使用WPS打开工作簿,在其中插入嵌入到单元格的图片第二步:保存......
  • C# 读写 Excel 四种方案(OpenXml、NPOI、EPPlus、Spire.Office)
    C#读写Excel四种方案(OpenXml、NPOI、EPPlus、Spire.Office)翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 你经常看TA的内容前言在项目中需要使用C#读写Excel,每天定时将数据输出到Excel表格中。在参考了很多的方案后,找到了4......
  • 自动化文件管理:使用Python创建匹配Excel数据的文本文件
    介绍在日常工作中,我们经常需要处理大量的数据和文件。尤其是在处理涉及多层嵌套目录和数据文件时,手动操作变得极其繁琐和耗时。为了提高效率,自动化这一过程显得尤为重要。本博客介绍了一个实用的Python脚本,它能够自动读取Excel表格中的数据,并在相应的文件夹中创建文本文件。这个......
  • Excel-让你事半功倍的12个小技巧
    让你事半功倍的12个小技巧1.资料分列框选需要剖析的单元格——数据——分列——分隔符号——勾选分隔符号或分列——固定宽度——在数据预览处手动拖动分栏线。2.快速选取资料Ctrl+键盘方向键:选取框移动到表格的四个角落Ctrl+shift+键盘方向键:选取对应的范围标题列左上角:选取......
  • Excel-定义名称 & INDIRECT 函数& 下拉选单设定
    1.定义名称意义:储存格的定义名称,可以将储存格的范围转换成一个容易理解和记忆的名字,比如A1:A5~姓名,将五笔金额设定为一个名称~金额,使我们在设定与维护公式时更加方便,此后再建立公式的时候,不用再用鼠标框选范围,可以直接在括号的后面,输入我们命名的名字。设定:①框选范围-公式-定......
  • Python 如何读取 Excel 表内容
    在数据处理和分析中,Excel是一个常用的工具,而使用Python读取Excel表内容可以更方便地进行数据分析和处理。本文将介绍几种常见的Python库和方法,帮助您实现读取Excel表内容的操作。使用openpyxl库读取Excel表内容openpyxl是一个用于读写Excel文件的Python库,支持Excel2010及以上版本......
  • 标题:Python脚本:将Excel文件拆分成多个工作表
    简介:本博客介绍了一个实用的Python脚本,旨在帮助用户处理和重塑Excel数据。这个脚本允许用户将一个包含多列数据的Excel文件拆分成多个新的Excel文件,每个文件包含10列数据。特别适用于需要将大型数据集分解为更小、更易管理的部分的场合。功能特点:用户友好的交互:脚本通过命令行......
  • easyexcel只通过表名来动态查询并动态导出数据
    EasyExcel动态表头即动态数据生成1️⃣业务需求需要将数据库中的所有表放在一个下拉框中,下拉框支持模糊查询到相关的表,然后通过这个表名查询到数据库的数据,切换不同的表查询出来相关表的列和数据需要注意的点:1)js实现模糊搜索   2)导出的表头和数据都是动态生......
  • 2024年 为什么不建议新人学习ABAP
    引言每个应届生都希望自己有良好的职业发展,当他们发现前路难通时,便会寻找更好的出路。“转码”曾经是个很火热的话题。在互联网行业高速发展的年代,转行学代码,入职大厂,升职加薪,是许多人的可以成真的梦想。而现在,行业进入平台期,不少人也开始迷茫,现在转码还值不值?这样重要的人生选......
  • Excel-COUNTIFS与 SUMIFS函数
    COUNT(范围)求出储存格总数,只能计算数字类型的资料COUNTA(范围)会计算所有非空白储存格的个数 COUNTIF(资料范围,条件)计算符合条件的储存格数目一次只能设定一个条件条件可以直接输入“文字”,或者连接到储存格方便修改COUNTIFS(范围1,条件1,范围2,条件2,……)也可以使用运算符号配合数值......