使用OLE概念将ALV下载到Excel到桌面上。

2020-09-04 14:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)



嗨,专家,

我的要求是,通过我的se38程序,我需要将报告输出下载到excel。

我使用OLE概念代码做到了这一点,并且excel的下载效果很好。

但是问题是所有列数据都被转储到第一列中。 但是在我的ALV中,我有20列。 因此,除了Excel工作表中的数据在20列之外,我都是这样。

下面是我使用的OLE代码

创建对象wa_excel'EXCEL.APPLICATION'。 "为Excel创建对象
设置wa_excel'VISIBLE'的属性=1。"在后台模式下
wa_excel'WORKBOOKS'的调用方法= w_workbook。
w_workbook'ADD'的调用方法。 "创建一个新的工作簿
设置wa_excel'SheetsInNewWorkbook'的属性=3。"没有工作表
*将表头详细信息下载到第一张工作表
PERFORM download_sheet表格i_final使用1个"主物料详细信息"。
wa_excel'ActiveSheet'= w_worksheet的属性。
*用密码保护第一个工作表
w_worksheet'PROTECT
EXPORTING#1 ='infy @ 123'的调用方法。
*保存Excel
获取wa_excel'ActiveWorkbook'= w_workbook的属性。
调用w_workbook'SAVEAS'的方法
导出#1 = p_infile。
免费对象:w_worksheet,wa_excel。

FORM download_sheet表格p_tab使用p_sheet TYPE i p_name TYPE字符串。

wa_excel的呼叫方法'WORKSHEETS'= w_worksheet
导出
#1 = p_sheet。

呼叫方法 w_worksheet'ACTIVATE'的设置。
设置w_worksheet'NAME'的属性= p_name。
wa_excel的调用方法'Range'= w_range
导出
#1 ='A1'
#2 = 'D1'。

调用w_range'内部'= w_int的方法。
设置w_int'ColorIndex'的属性=6。
设置w_int'Pattern'的属性=1。
*最初解锁所有列(由 默认情况下所有列均被锁定)。
wa_excel的调用方法'列'= w_columns。
w_columns的设置属性'已锁定'=0。
*锁定和格式化第一列
wa_excel的调用方法' Columns'= w_columns
EXPORTING
#1 = 1.
*锁定和格式化第二列
wa_excel的调用方法'Columns'= w_columns
EXPORTING
#2 = 2. < br>将w_columns的属性设置为"锁定" =2。
将w_columns的属性设置为'NumberFormat'='@'。
*将内部表中的内容导出到剪贴板中
调用方法cl_gui_frontend_services => clipboard_export
导入
数据= p_tab []
更改
rc = w_rc
例外
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
其他= 4 。
*将剪贴板中的内容粘贴到工作表中。
调用w_w的方法 orksheet'粘贴'。
*根据内容自动调整列
wa_excel的调用方法'Columns'= w_columns。
w_columns的调用方法'AutoFit'。
免费对象:w_columns,w_range。

如果有WA_EXCEL的SET属性可以用来将ALV数据处理到Diffrenet列中,请帮助我。

此致

jayant。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)



嗨,专家,

我的要求是,通过我的se38程序,我需要将报告输出下载到excel。

我使用OLE概念代码做到了这一点,并且excel的下载效果很好。

但是问题是所有列数据都被转储到第一列中。 但是在我的ALV中,我有20列。 因此,除了Excel工作表中的数据在20列之外,我都是这样。

下面是我使用的OLE代码

创建对象wa_excel'EXCEL.APPLICATION'。 "为Excel创建对象
设置wa_excel'VISIBLE'的属性=1。"在后台模式下
wa_excel'WORKBOOKS'的调用方法= w_workbook。
w_workbook'ADD'的调用方法。 "创建一个新的工作簿
设置wa_excel'SheetsInNewWorkbook'的属性=3。"没有工作表
*将表头详细信息下载到第一张工作表
PERFORM download_sheet表格i_final使用1个"主物料详细信息"。
wa_excel'ActiveSheet'= w_worksheet的属性。
*用密码保护第一个工作表
w_worksheet'PROTECT
EXPORTING#1 ='infy @ 123'的调用方法。
*保存Excel
获取wa_excel'ActiveWorkbook'= w_workbook的属性。
调用w_workbook'SAVEAS'的方法
导出#1 = p_infile。
免费对象:w_worksheet,wa_excel。

FORM download_sheet表格p_tab使用p_sheet TYPE i p_name TYPE字符串。

wa_excel的呼叫方法'WORKSHEETS'= w_worksheet
导出
#1 = p_sheet。

呼叫方法 w_worksheet'ACTIVATE'的设置。
设置w_worksheet'NAME'的属性= p_name。
wa_excel的调用方法'Range'= w_range
导出
#1 ='A1'
#2 = 'D1'。

调用w_range'内部'= w_int的方法。
设置w_int'ColorIndex'的属性=6。
设置w_int'Pattern'的属性=1。
*最初解锁所有列(由 默认情况下所有列均被锁定)。
wa_excel的调用方法'列'= w_columns。
w_columns的设置属性'已锁定'=0。
*锁定和格式化第一列
wa_excel的调用方法' Columns'= w_columns
EXPORTING
#1 = 1.
*锁定和格式化第二列
wa_excel的调用方法'Columns'= w_columns
EXPORTING
#2 = 2. < br>将w_columns的属性设置为"锁定" =2。
将w_columns的属性设置为'NumberFormat'='@'。
*将内部表中的内容导出到剪贴板中
调用方法cl_gui_frontend_services => clipboard_export
导入
数据= p_tab []
更改
rc = w_rc
例外
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
其他= 4 。
*将剪贴板中的内容粘贴到工作表中。
调用w_w的方法 orksheet'粘贴'。
*根据内容自动调整列
wa_excel的调用方法'Columns'= w_columns。
w_columns的调用方法'AutoFit'。
免费对象:w_columns,w_range。

如果有WA_EXCEL的SET属性可以用来将ALV数据处理到Diffrenet列中,请帮助我。

此致

jayant。

付费偷看设置
发送
2条回答
亦是此间程序员
1楼 · 2020-09-04 15:48.采纳回答

嗨,Shetty

SAP已经给出了一个很好的OLE示例,用于通过OLE将数据下载到excel中。

检查程序RSDEMO01 ..检查如何在不同单元格中填充数据

Nabheet

土豆飞人
2楼-- · 2020-09-04 15:51
Sivapriya Nandyala 请使用 ABAP2XLSX ,就像现在其他人一样……

一周热门 更多>