在多个工作表中下载alv到excel

2020-09-18 03:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我想在多个Excel标签...

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

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


嗨,

我想在多个Excel标签中下载一些数据。 我已经看到许多有关OLE概念的链接,但我对此并不熟悉。 我从链接 https://复制了一个程序 www.erpworkbench.com/abap/ms/format-excel.htm

我修改了代码以在excel的工作表2中显示记录。 但是我似乎无法在工作表1或工作表3 中显示相同的数据。 释放对象后,我尝试为工作表1或工作表3编写相同的代码,但只有首先填充代码中提到的工作表。

下面是代码:

包含ole2incl。
数据:应用程序类型ole2_object,
工作簿TYPE ole2_object,
表格ole2_object,
单元格ole2_object,
cell1 TYPE ole2_object,
cell2 TYPE ole2_object
范围TYPE ole2_object,
字体TYPE ole2_object,
列TYPE ole2_object,
阴影TYPE ole2_object,
border ole2_object。
常量:row_max TYPE i VALUE 256.
DATA index TYPE i。
数据:ld_colindx类型I,"列索引
ld_rowindx类型i。"行索引

类型:t_data的开头,
field1类型字符串,
field2类型 字符串,
field3类型字符串,
field4类型字符串,
field5类型字符串,
field6类型字符串,
field7类型字符串,
field8类型字符串,
field9类型字符串 ,
field10类型字符串,
field11类型字符串,
field12类型字符串,
field13类型字符串,
field14类型字符串,
field15类型字符串,
field16类型字符串,
t_data的末尾。
数据:it_header类型t_data的标准表,
wa_header类似 LINE OF it_header,
it_data类型t_data标准表,
it_data2类型t_data标准表,
wa_data类似于LINE OF it_data。

*用于保存值的字段符号
field- 符号:

数据:itab1的开始0,first_name(10),itab1的结尾。
数据:itab2的开始,ocabs 0,last_name(10),itab2的结尾。 br>数据:itab3的开始次数为0,公式(50),itab3的结尾。

************************* ***************************************************
*开始选择
开始选择。

wa_header-field1 ='Header1'。
wa_header-field2 ='Header2'。
wa_header-field3 ='Header3' 。
wa_header-field4 ='Header4'。
wa_header-field5 ='Header5'。
wa_header-field6 ='Header6'。
wa_header-field7 ='Header7'。
wa_header- field8 ='Header8'。
wa_header-field9 ='Header9'。
wa_header-field10 ='Longer Header10'。
wa_header-field11 ='Header11'。
wa_header-field12 ='Header12' 。
wa_header-field13 ='Header13'。
wa_h eader-field14 ='Header14'。
wa_header-field15 ='Header15'。
wa_header-field16 ='Header16'。
将wa_header附加到it_header。



wa_data-field1 ='列1数据'。
wa_data-field2 ='列1数据'。
wa_data-field3 ='列1数据'。
wa_data-field4 ='列1数据'。
wa_data-field5 =' 列1数据'。
wa_data-field6 ='列1数据'。
wa_data-field7 ='列1数据'。
wa_data-field8 ='列1数据'。
wa_data-field9 ='列1数据 '。
wa_data-field10 ='列1数据'。
wa_data-field11 ='列1数据'。
wa_data-field12 ='列1数据'。
wa_data-field13 ='列1数据'。
wa_data-field14 ='列1数据'。
wa_data-field15 ='列1数据'。
wa_data-field16 ='列1数据'。
将wa_DATA附加到it_DATA。
将wa_DATA附加到 it_DATA。
it_data2 [] = it_data []。
创建对象应用程序" excel.application"。
设置应用程序" visible"的属性=1。
调用应用程序"工作簿"的方法 '=工作簿。

应用程序" SheetsInNewWorkbook"的设置属性=3。"总张数
工作簿"添加"的调用方法。

应用程序"工作表"的调用方法=工作表
导出#1 =2。"下载数据的目标工作表编号
工作表"激活"的调用方法。
设置工作表"名称"的属性 ='Sheet2'。

******************************************* ********
*将标头数据下载到excel电子表格*
**************************** *******************
ld_rowindx =1。"从标题的第一行开始
循环到it_header进入wa_header。
*使用sy-tabix 用于行索引
ld_rowindx = sy-tabix。

*填充当前行的列
清除ld_colindx。
执行。
*将分配给表列
分配 结构wa_header的sy-index到
如果sy-subrc ne 0.
退出。
Endif。
ld_Colindx = sy-index。
调用工作表"单元格"的方法 '=单元格
导出#1 = ld_rowindx
#2 = ld_colindx。


设置单元格的属性'值'=
Enddo。
ENDLOOP。

******************************************** ***
*将数据下载到Excel Spreadshee t *
********************************************* **
调用应用程序"工作表"的方法=工作表
导出#1 =2。

清除:ld_rowindx,ld_colindx。
将it_data循环到wa_data中。
ld_rowindx = sy -tabix +1。"从第2行开始(将标题留在第一行

*填充当前行的列
清除ld_colindx。
执行。
分配结构wa_data的组件sy-index 到
如果sy-subrc ne0。
退出。
端点。
ld_colindx = sy-index。
调用"单元格"工作表的方法=单元格
导出 #1 = ld_rowindx
#2 = ld_colindx。


设置单元格的属性'值'=
Enddo。
ENDLOOP。

< br>调用应用程序"工作表"的方法=工作表
导出#1 =2。


********************* **************************
*捕获要修改的单元格的范围*
********* ******************************************
*范围起始单元格
调用 应用方法'Cells'= cell1
EXPORTING
#1 = 1" down
#2 = 1." across
*范围结束Cell
应用程序'Cells'的调用方法= cell2
导出
#1 = 1"向下
#2 = 16" >
调用方法'范围'=范围
导出
#1 =单元格1
#2 =单元格2。

************ ******************************************
*修改单元格范围的属性*
** **************************************************
*设置 范围的字体详细信息
获取范围'Font'=字体的属性。
设置字体'Bold'的属性=1。
设置字体'Size'的属性=10。

* 范围的SET CELL着色属性
范围" INTERIOR"的调用方法=阴影。
阴影的着色属性" ColorIndex" =15。"颜色-diff颜色的更改编号
阴影的"模式" set属性 = 1."模式-实心,有条纹等的自由对象着色。

*更改范围值-包括所有行(1,2和3)
自由范围。
调用方法 应用程序'Cells'= cell1"起始单元格
EXPORTING
#1 = 1"向下
#2 = 1。 br>
调用方法'Cells'= cell2" end cell
导出
#1 = 3"下
#2 = 16。 '范围'=范围
导出
#1 =单元格1
#2 =单元格2。

*设置范围的BORDER属性
范围的调用方法'BORDERS'= BORDER导出# 1 ='1'。 "边界'LineStyle'的left
set属性='1'。"实线,虚线...
边界'WEIGHT'的set属性=2。" max = 4
自由对象边界。

范围'BORDERS'的调用方法= BORDER导出#1 ='2'。" right
边界'LineStyle'的设置属性='1'。
边界'WEIGHT'的设置属性 =2。" max = 4
自由对象边界。

范围'BORDERS'的调用方法= BORDER导出#1 ='3'。" top
边界'LineStyle'的set属性= '1'。
设置边界'WEIGHT'的属性=2。" max = 4
自由对象边界。

范围'BORDERS'的调用方法= BORDER导出#1 ='4' 。"边界设置边界'LineStyle'='1'。
边界'WEIGHT'设置属性=2。" max = 4
自由对象边界。

*忽略 范围内所有等于"测试"的单元格值
*设置范围" VALUE" ="测试"的属性。


*************** ************************************
*设置列以自动适合文本的宽度*
* ************************************** ************
应用程序的调用方法'Columns'=列。
应用程序的调用方法'Autofit'。
免费对象COLUMN。

* **************************************************
* 将excel speadsheet保存为特定的文件名*
******************************************** *******
调用表SaveAs的方法
导出#1 ='c:\ temp \ exceldoc2.xls'"文件名
#2 =1。" fileFormat
< br>
免费对象表。
免费对象工作簿。
免费对象应用程序。

输出在工作表2中显示为:

如何在工作表1和工作表3中显示这些相同的记录? 我需要在代码中的什么地方进行什么更改?

此致

Manish

screenshot001.jpg (123.2 kB)