SAP 工具箱批量下载指定表数据到 EXCEL

作者:ABAP技巧与实战 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, Data Engineering, WM, 仓库管理, 开发, 数据工程, 系统管理

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

**点击蓝字** 关注我们

前言

下载指定表内容到指定的EXCEL是一个比较简单的程序.但仔细考虑这个程序,还是可以在细节上找出一些关注点

• 多表内容同时下载,每个表生成一个文件

• 多表选择时,先查看表的记录数

• 大表下载时,拆分下载

• 拆分到不同的文件中

• 拆分到同一个文件中的不同的工作表

• 下载为CSV文件(基于性能考虑)

• ……

本文主要介绍一个批量下载表内容的工具

缘起

基于项目结束备份关键配置表内容的需求,做过一个批量输出表内容到文件的程序.当时程序比较简陋,仅仅实现了功能,很多细节没有考虑.

后来碰到项目中提出需求:导出大表拆分到多个文件中. 遂起意把当初这个程序完善一下. 补充了很多细节.

程序名

ZBC_DOWN_MUL_TABC 下载指定表的内容到PC指定路径

**文末有获取方式**

思维导图

通过思维导图,可以大致理解程序的主要功能及模块

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

演示

如下是程序执行的步骤示例

默认显示表条目数,

条目数可以通过HANA表 "PUBLIC"."M_TABLES" 直接快速获取( 该表可以通过NATIVE SQL访问, 或者创建CDS视图访问)

但这个表存的是表中的所有记录数,没有区分集团.会有些歧义.

> 访问HANA数据库详见链接 无峰,公众号:ABAP 技巧与实战 [ ABAP基础知识 怎么访问HANA数据库中的其它CATALOG的表

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487740&idx=1&sn=06f69f335cdab7004e9db430d1d44f35&chksm=cf5dcdcaf82a44dcae6d181c2116b2c1f287c5126e176e3a1826183847933f091ca39f651749#rd)

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

显示符合查询条件的所有被的相关属性

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

点击 下载表内容到指定路径,显示和下载相关的选项

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

点击其它方式,弹出其它方式的选项,同时限制拆分方式(只有ABAP2XLSX方式支持单表内容拆分到一个文件的多个工作表中)

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

下载后的屏幕呈现 每个表统计下载的文件个数,成功文件个数. 如果下载报错,报错信息记录在消息中.

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

所有文件成功, 设置处理标记 S, 否则设置处理标记 E

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

文件名样式

文件名命名规则

• 整体下载 <表名>_<条目数>_<表描述>

• 拆分下载 <表名>_<条目数>_<文件数>_<文件序号>_<文件中的条目数>_<表描述>

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

文件内容样式

• 第一行: 字段名

• 第二行: <类型>:<长度>:<字段描述>

• 第三行后是表内容

对于 ABAP2XLSX下载的EXCEL . 使用间隔色显示不同的行.

其它方式没有间隔色

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

ABAP2XLSX 方式支持拆分到同一个文件的不同工作表中,样式如下

SAP 工具箱批量下载指定表数据到 EXCEL - 封面图
SAP 工具箱批量下载指定表数据到 EXCEL - 封面图

三种方式分析

• 生成csv文件

性能最好,文件不含样式(逗号分隔的文本文件). 大表只能拆分到不同文件中.

• 生成xlsx文件(ABAP2XLSX)

性能较好,大表允许拆分到单一文件不同工作表, 但是可能会导致内存空间不足的DUMP .大表最好拆分到不同的文件.

样式较好看: 间隔色显示,抬头反色显示等.

• 生成xlsx文件

(函数SAP_CONVERT_TO_XLS_FORMAT)

性能较差, 如果文件名已经存在,因为函数本身的BUG,会导致DUMP ,并打开临时文件. 影响多表的同时输出.

总结

生成EXCEL文件还有很多其它的方式,但是用了ABAP2XLSX后, 感觉这种方式更简单灵活,结合大数据量用CSV方式,基本可以解决所有数据下载的问题.

这个程序提供源代码分享, 需要的,可以进入公众号菜单获取,或者在公众号输入关键字 下载 获取.

因为项目中对于引入的ABAP2XLSX做了一些增强调整. 所以该程序不确保安装了ABAP2XLSX的其它系统不会报错. 如果报错,

注释掉相关FORM中的代码 . 使用非ABAP2XLSX下载功能.

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP工具箱批量下载指定表数据到EXCEL.md」整理生成,仅用于内部技术分享与学习交流。