Excel 高效输出工具 XLSXWorkbench

作者:SAPTAB 约 8 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, CO, Data Engineering, FI, SD, 开发, 数据工程, 系统管理, 财务, 销售分销
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)

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

富强 民主 文明 和谐

自由 平等 公正 法制

爱国 敬业 诚信 友善

**不念过** **去**

**START**

**不畏将来**

**_Title_ **

**Excel高效输出工具-xlsx workbench**

**一**

**介绍说明**

前段时间做财务报表项目,由于用户集团下面公司众多,每个月看财务管控的报表需要看几十张客制化的报表,而且是在一个excel文件中,相当于一个公司一个sheet页,而且excel的样式需要根据客户的需求进行不同的定制。之前用户在一家公司下使用excel导出是采用SMW0模板+OLE输出到excel单元格的方式,下载一张财务报表需要几分钟,现在需要扩展到全集团,下载几十家公司的财务报表速度就及其的慢了,所以看到网上有XLSX

Workbench开源项目,所以就自己研究了一下安利给了客户,结果就是导出几十家公司的客制报表数据仅需要十几秒

XLSX Workbench 是一种高效Excel输出的工具,用于在 SAP 环境中设计基于 Excel 的表单。

由于采用了完全可视化的形式来开发表格(像 SMARTFORMS进行开发 ),因此它非常易于学习和使用。 XLSX Workbench

的可视化方法使您即使没有 ABAP 技能也可以开发打印表格。

XLSX Workbench 是功能强大且非常灵活的工具,适用于具有图片,图表,层次结构和其他格式设置功能的简单表单和复杂动态表单的开发。 而且

XLSX Workbench 提供了高性能的生成打印表格结果文件的功能。

**二**

**XLSX Workbench 安装**

安装方式有2种,一种是通过SAPLink安装,另一种就是自己手动去创建,个人还是推荐使用SAPLink去安装的,这样避免一些不必要的错误的产生。

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

如果通过人工手工创建程序则需要:

(1)通过 se38 创建程序: ** ZXLWB **

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(2)创建事务代码: ** ZXLWB_WORKBENCH **

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(3)创建包含程序: ** ZXLWB_INCLUDE **

**

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

**

(4)创建函数组: ** ZXLWB **

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

同时创建

Function : ZXLWB_CALLFORM 和 ZXLWB_WORKBENCH

LZXLWBF01 LZXLWBTOP ZXLWB_INCLUDE

代码详情 请自行下载文件(下载链接关注文章末尾)

(5) GUI状态为如下图:其他地方为空白

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(6) GUI 标题

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(7)屏幕0100

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(8) Function ZXLWB_CALLFORM 参数:

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(9) Function ZXLWB_WORKBENCH 参数:

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(10) 安装时可能会出现的问题

10.1 如果 ** CL_HRPAYNA_GUI_ALV_TREE ** 这个类不在你的系统中,请自行创建一个类来代替 ** SE24 **

创建自定义类

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

继承超类 CL_GUI_ALV_TREE

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

创建一个 Method : GET_OUTTAB

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

参数如下:

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

10.2 如果系统中不存在 ** CKF_FIELD_VALUE_TABLE ** ** ** 结构,请自行创建结构代替

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

**三**

**Demo客制化模板制作**

3.1 我们使用系统自带的SFLIGHT表来构建下航班信息输出报表

首先我们创建需要用到的内表结构

表头数据

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

内表数据

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

3.2 使用事务码ZXLWB_WORKBENCH来创建输出模板

(1) 输入名称并点击 create

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

如下图,你可以看到编辑 excel 模板的界面,操作方发类似于 smartforms 的操作

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

双击模板名称,在Name of context 栏位点击

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

, 将创建好的结构分配给模板

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

如果需要自动根据结构创建模板结构,可以点击 Auto

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

如下图自动创建了 form 的结构, status 为红色的表示仍需要操作

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

如下可以设置当前绑定的是 excel 界面中的哪个 sheet

在 sheet name at runtime 中可以设置输出 sheet 页名称为自动的 sheet1,sheet2...

也可以点击

如下可以设置当前绑定的是 excel 界面中的哪个 sheet

在 sheet name at runtime 中可以设置输出 sheet 页名称为自动的 sheet1,sheet2...

也可以点击

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

设置 sheet name 关联 ZXWLB_S_001_HEADER 中的字段来赋值字段

设置 sheet name 关联 ZXWLB_S_001_HEADER 中的字段来赋值字段

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(2) 在 EXCEL 的区域设置好 Excel 模板 , 如下图,模板上 Excel 单元格格式和输出时E xcel 保持一致

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

(3) 将 FORM Structure 和 Excel 模板区块对应绑定上:

选中如下图 1 中的 excel 区域,双击 ZXWLB_S_001_HEADER, 然后点击

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

绑定 excel 区域和 ZXWLB_S_001_HEADER

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

绑定之后, ZXWLB_S_001_HEADER 的 Status 变成绿色,下方显示绑定区域位置

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

对于 ZXWLB_S_001_HEADER 下层字段绑定只能在 ZXWLB_S_001_HEADER 与 Excel

模板绑定的区域中进行绑定字段

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

Convert value to ext.format 打勾相当于 = ALPHA

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

其他 2 个抬头字段如上操作

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

下图为绑定了内表 -ITEM ,该

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

标识表示每一次循环完毕之后 ** 向下 ** 增加条目

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

绑定关系如下图:

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

同时删除不需要的字段

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

保存和激活设计的模板

Excel 高效输出工具 XLSXWorkbench - 封面图
Excel 高效输出工具 XLSXWorkbench - 封面图

**四**

**调用设计好的模板**

部分调用代码如下:

FORM frm_down_excel USING uv_filename TYPE string .

DATA ls_header TYPE zxwlb_s_001_header .

DATA ls_item TYPE zxwlb_s_001_item .

DATA lt_item TYPE zxwlb_t_001_item .

_ "赋值 _

ls_header \- flight_info = 'Tab Flight' . ls_header \- currency = 'CNY' .

...

SAPTAB

关于作者:SAPTAB

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

来源说明:本文内容由「Excel高效输出工具XLSXWorkbench.md」整理生成,仅用于内部技术分享与学习交流。