12-12-2012 12:02 PM
I have a program which generates and excel sheet via OLE , since it requires complex formatting. Now based on certain criteria, I want to hide certain columns. I could not find how to do the same. How do i achieve the same?
12-12-2012 12:48 PM
Hi Anish,
Here's an example:
METHOD column_B_hidden.
DATA: l_excel TYPE ole2_object,
l_wbooklist TYPE ole2_object,
l_application TYPE ole2_object,
l_wbook TYPE ole2_object,
l_activesheet TYPE ole2_object,
l_column TYPE ole2_object.
CREATE OBJECT l_excel 'EXCEL.APPLICATION'.
SET PROPERTY OF l_excel 'Visible' = 1. " Visible
GET PROPERTY OF l_excel 'Workbooks' = l_wbooklist.
GET PROPERTY OF l_wbooklist 'Application' = l_application.
SET PROPERTY OF l_application 'SheetsInNewWorkbook' = 1.
CALL METHOD OF l_wbooklist 'Add' = l_wbook.
GET PROPERTY OF l_application 'ActiveSheet' = l_activesheet.
CALL METHOD OF l_excel 'COLUMNS' = l_column
EXPORTING
#1 = 2. " 2 = Column B
SET PROPERTY OF l_column 'Hidden' = 1.
ENDMETHOD. "column_B_hidden
Regards,
Christian
12-12-2012 12:48 PM
Hi Anish,
Here's an example:
METHOD column_B_hidden.
DATA: l_excel TYPE ole2_object,
l_wbooklist TYPE ole2_object,
l_application TYPE ole2_object,
l_wbook TYPE ole2_object,
l_activesheet TYPE ole2_object,
l_column TYPE ole2_object.
CREATE OBJECT l_excel 'EXCEL.APPLICATION'.
SET PROPERTY OF l_excel 'Visible' = 1. " Visible
GET PROPERTY OF l_excel 'Workbooks' = l_wbooklist.
GET PROPERTY OF l_wbooklist 'Application' = l_application.
SET PROPERTY OF l_application 'SheetsInNewWorkbook' = 1.
CALL METHOD OF l_wbooklist 'Add' = l_wbook.
GET PROPERTY OF l_application 'ActiveSheet' = l_activesheet.
CALL METHOD OF l_excel 'COLUMNS' = l_column
EXPORTING
#1 = 2. " 2 = Column B
SET PROPERTY OF l_column 'Hidden' = 1.
ENDMETHOD. "column_B_hidden
Regards,
Christian
12-12-2012 1:05 PM
12-12-2012 12:51 PM
Hi Anish,
As a reference of SAP Standard Demo Program ,"RSDEMO01" .
if Field1 = field2 .
" Suppose u doesn't want dis field for certern Condition put if condition ,Excel Colomn Name
PERFORM FILL_CELL USING 1 1 1 'Flg'(001).
endif.
PERFORM FILL_CELL USING 1 2 1 'Nr'(002).
PERFORM FILL_CELL USING 1 3 1 'Von'(003).
PERFORM FILL_CELL USING 1 4 1 'Nach'(004).
PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).
for Column Value .....
LOOP AT IT_SPFLI.
* copy flights to active EXCEL sheet
H = SY-TABIX + 1.
if Field1 = field2 .
PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
endif.
PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID.
PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM.
PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO.
PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME.
ENDLOOP.
Note : Not match with ur exact requirement , but your reference purpose
Regard's
Smruti