Field Symbols in Download to excel FM
Hi All,
I am trying to use something like below.
field-symbols : <gt_outtab> type any.
Here <gt_outtab> is a dynamic internal table.
It gives me an error message saying ""
i might be asking very silly question but am not able to find a solution.
Is the below code wrong...then is there any FM which supports usage of field symbols in FM to download data with field names.
another thing...is there any way to read the Component names in a field symbol...I am able to read the contents of the same using Assign component though.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\test1.xls'
filetype = 'ASC'
append = 'X'
TABLES
data_tab = <gt_outtab>
fieldnames = gt_fieldcat.
Any help is appreciated.
BR,
Krishna.
Hi Max,
thanks for that...I did get the structure and was able to create a Dynamic table using the Field catalog fieldnames.
Now I have all my values in <gt_outtab> table and the dynamic table created from the field catalog is <gt_fieldcat> .
DATA: it_create TYPE REF TO cl_alv_table_create,
it_dinamica TYPE REF TO data,
it_fieldcat_lvc TYPE lvc_t_fcat.
CALL METHOD it_create->create_dynamic_table(
EXPORTING it_fieldcatalog = gt_save_fieldcat
IMPORTING ep_table = it_dinamica ).
ASSIGN it_dinamica->* TO <fs_dinamica>.
All I want is to Move corresponding from one fieldsymbol to another.
something like move-corresponding <gt_outtab> to <gt_fieldcat> . But it gives me an error saying its not a structure etc.
I tried another way as well.
loop at <gt_outtab> assigning <gs_outtab>.
ASSIGN COMPONENT MY_STRUCT->COMPONENTS-NAME
OF STRUCTURE <gs_outtab> TO <fs1>.
All I have now is a fieldcatalog..a table with all values...
Move corresponding doesn't work as it says this is not a structure or an internal table.
as this is not a static structure that I am referring to it doesnt allow me to do this.
I think there is no concept of type casting a Field Symbol like another field symbol at runtime.
like : field-symbols : <fs>, <fs1> , <fs2> type itab1.
assign <fs2> to <fs> casting. which then transforms <fs2> to structure <fs>.
for e.g :
<gt_fieldcat> :
orderno itemno adsize date price
<gt_outtab> has below values
orderno itemno price date adsize
400 10 200 10.10.2010 45
500 20 150 11.09.2010 55
All i need is the same field catalog and the rows in as per the fields in the <gt_fieldcat>.
When there is something gt_sp_groups while passing into the below method, the fieldcat and the output table are in same structure but after this method if I try to read the current Field catalog using method " get_frontend_fieldcatalog" ...it gives me a different one after applying the Groups etc.,in such cases I think the ALV excel download doesnt work. I tried checking SAP Notes for the same, but could not find anything. It will be helpful if I can get any notes related to that.
e.g.
CALL METHOD gr_alvgrid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
it_special_groups = gt_sp_groups
it_toolbar_excluding = gt_exclude .
Any one any ideas please....at the moment the only way i am trying is forcing all the fields as characters into the Excel which obvisouly limits if it is a Price columns.
Many thanks,
Krishna.
Edited by: Krishna on Nov 11, 2010 2:24 AM
Edited by: Krishna on Nov 11, 2010 5:56 PM
Similar Messages
-
While downloading to Excel Currency field should Blank instead of 0.00
Hi All,
While downloading to excel from ALV report currency field is downloading as 0.00. My requirement is when the value is 0.00 it should download as blank.
I tried by changing the data type to char but still have problem. Any idea how to fix it??
Regards,
JitendraHi Jitendra,
Please paste your sample code to understand Clearly.
Regards,
Srikanth -
How can I disenable the EXCEL field format when use ALV download to excel ?
Dear friends,
I have a problem with the ALV download to EXCEL. One field Value in ALV is like u2018-abcdeu2026u2019.the character u201C-u201Cis the first position in field value.when I download the value to EXCEL,the field value u2018-abcdeu2026u2019 changed u2018=-abcdeu2026u2019 in EXCEL.how can I remove u2018=u2019 in EXCEL when I down to excel used ALV.
I add a space in u2018 -abcdeu2026u2019,So this value can be download to Excel .
Have you any solve method?
User does not use excel logo button to download.
User use Local fileu2026 button to download
Thanks
Sunadd a single quote to the beginning of the field.
like: '-abcde
in excel it will be shown as : -abcde -
PDF filled in form for analysis - download to Excel field titles are corrupted
I am having an issue with the download to Excel as well as the tracker capabilities in Tracker. The field names/titles that I have on my PDF form show up with strange characters as the titles. My form question is: Is your company currently a contractor/supplier to XYZ? The field in the Tracker and thus Excel down load is: Is_your_company_abRbCq3ookWNM8Au0LhpFQ. How can I get the full field as is show on the PDF form to appear in the Tracker and then Excel Download. I am using PDF forms distributed through e-mail. Form was created in Form Central. I am using Acrobat XI version 11.0.03.
Please help.Why create a separate popup page to download the data? You can place the content in the ICM cache and load it via a very small Iframe in your page. I think this will acomplish the same thing you are wanting to do.
The following weblog has the code to acomplish this. It does it for XML, Excel, and HTML downloads.
/people/thomas.jung3/blog/2004/09/02/creating-a-bsp-extension-for-downloading-a-table -
Download to Excel with Header but one field data is repeating
Hi All,
I'm downloading to Excel with Header. But One field is repeating and another is not. This is happening only when I use 'CONCATENATE ' . With Out this key usage data download to excel is correct. But CONCATENATE is required as constant need to add before the one field.
My coding is as below.
DATA: BEGIN OF IT_FINAL OCCURS 0,
P1(10) TYPE C,
SI(19) type c,
END OF IT_FINAL.
DATA : BEGIN OF IT_HEADER OCCURS 0,
TITLE(100) TYPE C,
END OF IT_HEADER,WA_HEADER LIKE IT_HEADER.
loop at it_final.
CONCATENATE '894412' it_final-SI INTO IT_FINAL.
modify it_final.
endloop.
CLEAR:WA_HEADER.
WA_HEADER-TITLE = 'Mat No'.
APPEND WA_HEADER TO IT_HEADER.
CLEAR:WA_HEADER.
WA_HEADER-TITLE = 'Serial'.
APPEND WA_HEADER TO IT_HEADER.
CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
EXPORTING
FILE_NAME = P_FILE " path offile where u need to download
TABLES
DATA_TAB = IT_FINAL
FIELDNAMES = IT_HEADER.
CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
EXPORTING
FILE_NAME = P_FILE " path offile where u need to download
TABLES
DATA_TAB = IT_FINAL
FIELDNAMES = IT_HEADER.
Excel OUT PUT:
Mat No Serial
11Z52321 8944126000
11Z52394 8944126000
11Z52395 8944126000
Thank You,
Pranithahi,
it would have been better if u hve opt for creating workarea for ur internal table.
Try to use "clear it_final" after
CONCATENATE '894412' it_final-SI INTO IT_FINAL.
n also change the modify statement :
modify it_final transporting SI .
hope this will surely help you
Regards,
Punit
Edited by: punit raval on Aug 26, 2011 2:55 PM -
Problem with CITY field when downloading to excel
Hi Gurus,
I have CITY field which is of 30 char length.Now Iam downloading the record having other fields also along with city field....Now my requirement is that in the Excel the city field should be right justified and the remaining characters should be space....How can we do that...
Generally I know that when We download to excel the fields adjust according to the data it has rather then with thier field size in SAP.
Regards,
Rohan.Hi,
In case of standard objects, it would be better if you can share the details like report name, the way you tried downloading(From menu, tool bar etc). Also search if there is any OSS notes for that program.
Thanks,
Vinod. -
ALV Download to excel truncating fields
Hi,
When I use the ALV download button to download to excel, it is truncating the last character of customer number.
ie customer 20011790 is showing as 2001179.
Any ideas how to fix this.
Thanks.Looks like Note 855314 has a workaround ... my be more.
Of course (yuk!), write you own download.
Best!
Jim -
Download to excel in different tabs from bsp page
Hi all,
I have a requirement in which I have to download to xl-sheet in different tabs based on some conditions from a bsp page.
I am successful in downloading data into different tabs.
Now I had written the piece of code required to download to xl in a function module
and I am calling that function module when pressing a button in bsp page.
When I run the fm seperately its working but when I run it from bsp page its not working.But while debugging I found that the fm is being called and executed perfectly without any errors.
But the xl is not being created on our side.
Can anyone suggest me how to proceed on this.
Helpful answers will be rewarded.
Thanks,
UgaHi Raja,
Yes I am using ole objects.
For more clarity I am alos pasting my code.
If this is not possible then please guide how to achieve this in BSP.
*******************CODE*****************************************
include ole2incl.
data: w_cell1 type ole2_object,
w_cell2 type ole2_object.
*--- Ole data Declarations
data: h_excel type ole2_object, " Excel object
h_mapl type ole2_object, " list of workbooks
h_map type ole2_object, " workbook
h_zl type ole2_object, " cell
h_f type ole2_object, " font
gs_interior type ole2_object, " Pattern
worksheet type ole2_object,
h_cell type ole2_object,
h_cell1 type ole2_object,
range type ole2_object,
h_sheet2 type ole2_object,
h_sheet3 type ole2_object,
gs_font type ole2_object,
flg_stop(1) type c.
Internal table Declaration
data:gt_kna1 type standard table of kna1,
gt_knvv type standard table of knvv,
wa_kna1 type kna1,
wa_knvv type knvv.
types: data1(1500) type c,
ty type table of data1.
data: it type ty with header line,
it_2 type ty with header line,
it_3 type ty with header line,
rec type sy-tfill,
deli(1) type c,
l_amt(18) type c.
data: begin of hex,
tab type x,
end of hex.
field-symbols: <fs> .
constants cns_09(2) type n value 09.
assign deli to <fs> type 'X'.
hex-tab = cns_09.
<fs> = hex-tab.
data gv_sheet_name(20) type c .
SELECT kunnr name1
INTO corresponding fields of table gt_kna1
FROM kna1
UP TO 1000 ROWS.
SELECT kunnr vkorg
INTO corresponding fields of table gt_knvv
FROM knvv
UP TO 3 ROWS.
loop at gt_kna1 into wa_kna1.
concatenate wa_kna1-kunnr wa_kna1-name1 into it separated by deli.
append it.
clear it.
endloop.
loop at gt_knvv into wa_knvv.
concatenate wa_knvv-kunnr wa_knvv-vkorg into it_2 separated by deli.
append it_2.
clear it_2.
endloop.
if h_excel-header = space or h_excel-handle = -1.
*start Excel
create object h_excel 'EXCEL.APPLICATION'.
endif.
call method of h_excel 'Workbooks' = h_mapl.
set property of h_excel 'Visible' = 1.
*add a new workbook
call method of h_mapl 'Add' = h_map.
gv_sheet_name = 'KNA1'.
get property of h_excel 'ACTIVESHEET' = worksheet.
set property of worksheet 'Name' = gv_sheet_name .
*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 50.
call method of h_excel 'Range' = h_cell
exporting
#1 = w_cell1
#2 = w_cell2.
*CALL METHOD OF gs_cells 'Select' .
get property of h_cell 'Font' = gs_font .
set property of gs_font 'Bold' = 1 .
data l_rc type i.
call method cl_gui_frontend_services=>clipboard_export
importing
data = it[]
changing
rc = l_rc
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 1.
PERFORM err_hdl.
call method of h_excel 'Range' = range
exporting
#1 = w_cell1
#2 = w_cell2.
call method of range 'Select'.
*PERFORM err_hdl.
call method of worksheet 'Paste'.
****for second sheet**********
GV_SHEET_NAME = '2ND SHEET'.
gv_sheet_name = 'Knvv'.
get property of h_excel 'Sheets' = h_sheet2 .
call method of h_sheet2 'Add' = h_map.
set property of h_map 'Name' = gv_sheet_name .
get property of h_excel 'ACTIVESHEET' = worksheet.
*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 50.
call method of h_excel 'Range' = h_cell
exporting
#1 = w_cell1
#2 = w_cell2.
get property of h_cell 'Font' = gs_font .
set property of gs_font 'Bold' = 1 .
call method cl_gui_frontend_services=>clipboard_export
importing
data = it_2[]
changing
rc = l_rc
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 1.
PERFORM err_hdl.
call method of h_excel 'Range' = range
exporting
#1 = w_cell1
#2 = w_cell2.
call method of range 'Select'.
PERFORM err_hdl.
call method of worksheet 'Paste'.
Can you people give me inputs so that I can proceed further.
Thanks,
Uga -
Download to excel - long text in single row using gui_download
Hi Experts,
I want to download the long text (read_text) (500-600 characters) to excel in single row. the column width should be 60.
i am using the gui_download FM as in my report i m using one gui_download for header data and 2nd one for details using APPEND . Can u suggest me the solutions for the same. Can i use word wrap option and if yes , then how to use it?
For eg.
Customer Satisfaction
There are no escalations / adverse feedback from the customer
Customer uses him/her for benchmarking others
Regular status update to customer
Proactively understands future needs of customer
Increases customer's confidence so that there is an increase in quality / quantity of work
This whole text should appear as single row.
Thanks,
Edited by: Khushi p on Nov 12, 2010 10:44 AMI tried alot to put this in a legible format by usingcode...code but still it is not putting the code in a correct format.May be some mentor will put it in a good format so that you can understand.Below is a wraper progrm which meets your objective.
REPORT ZSCRATCHPAD.
TABLES:EKPO.
TYPE-POOLS:slis.
TYPES : BEGIN OF ty_ekpo,
ebeln TYPE ekko-ebeln,
ebelp TYPE ekpo-ebelp,
txz01 TYPE ekpo-txz01,
matnr TYPE ekpo-matnr,
werks TYPE ekpo-werks,
loekz TYPE ekpo-loekz,
oic_ptrip TYPE ekpo-oic_ptrip,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
umrez TYPE ekpo-umrez,
umren TYPE ekpo-umren,
text TYPE string,
END OF ty_ekpo.
TYPES : BEGIN OF ty_text ,
tdformat TYPE tline-tdformat,
tdline TYPE tline-tdline,
END OF ty_text.
data: g_t_ekpo TYPE STANDARD TABLE OF ty_ekpo WITH HEADER LINE,
g_repid TYPE sy-repid,
g_ebeln(15),
l_fieldname1 LIKE ibipparms-path,
l_fieldname2 TYPE string,
g_objectid LIKE cdhdr-objectid,
g_t_text TYPE STANDARD TABLE OF ty_text WITH HEADER LINE,
g_t_text1 TYPE STANDARD TABLE OF ty_text WITH HEADER LINE.
data:g_fieldcat type slis_t_fieldcat_alv with header line,
g_events type slis_t_event,
wa_events like line of g_events,
g_listheader type slis_t_listheader,
walistheader like line of g_listheader,
g_layout type slis_layout_alv,
g_top type slis_formname,
g_sort type slis_t_sortinfo_alv with header line,
g_sort1 type slis_sortinfo_alv,
g_printparams type slis_print_alv,
g_variant type disvariant,
g_title type lvc_title,
g_excluding type slis_t_extab,
g_grid TYPE REF TO cl_gui_alv_grid.
field-symbols: <fs> type lvc_title.
SELECT-OPTIONS:P_EBELN FOR EKPO-EBELN NO INTERVALS.
PARAMETERS:p_r1 radiobutton group grp1,
p_r2 radiobutton group grp1.
SELECT ebeln
ebelp
txz01
matnr
werks
loekz
oic_ptrip
menge
meins
umrez
umren
INTO TABLE g_t_ekpo
FROM ekpo
WHERE ebeln IN p_ebeln
AND loekz NE 'L'.
IF sy-subrc <> 0.
CLEAR g_t_ekpo.
ENDIF.
define m_fieldcat.
g_fieldcat-fieldname = &1.
g_fieldcat-col_pos = &2.
g_fieldcat-seltext_l = &3.
g_fieldcat-do_sum = &4.
g_fieldcat-outputlen = &5.
g_fieldcat-checkbox = &6.
append g_fieldcat to g_fieldcat.
clear g_fieldcat.
end-of-definition.
if p_r1 = 'X'.
PERFORM summary_display.
else.
perform download.
endif.
FORM summary_display .
concatenate 'Test' ' ' into g_title separated by space.
assign g_title to <fs>.
g_repid = sy-repid.
m_fieldcat 'EBELN' '' 'EBELN' '' 10 ''.
m_fieldcat 'EBELP' '' 'EBELP' '' 05 ''.
m_fieldcat 'TXZ01' '' 'TXZ01' '' 40 ''.
m_fieldcat 'MATNR' '' 'MATNR' '' 10 ''.
m_fieldcat 'WERKS' '' 'WERKS' '' 04 ''.
m_fieldcat 'LOEKZ' '' 'LOEKZ' '' 01 ''.
m_fieldcat 'OIC_PTRIP' '' 'OIC_PTRIP' '' 16 ''.
m_fieldcat 'MENGE' '' 'MENGE' '' 13 ''.
m_fieldcat 'MEINS' '' 'MEINS' '' 03 ''.
m_fieldcat 'UMREZ' '' 'UMREZ' '' 05 ''.
m_fieldcat 'UMREN' '' 'UMREN' '' 05 ''.
g_layout-zebra = 'X'.
g_layout-colwidth_optimize = 'X'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = g_repid
* i_callback_pf_status_set = 'SET_PF_STATUS'
is_layout = g_layout
i_callback_user_command = 'LIST1'
i_grid_title = <fs>
* i_callback_top_of_page = ' '
it_fieldcat = g_fieldcat[]
* it_excluding = g_excluding
i_save = 'A'
* is_variant = ITVARIANT
it_events = g_events[]
* is_print = ITPRINTPARAMS
* it_sort = itsort[]
tables
t_outtab = g_t_EKPO[]
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
clear:g_fieldcat.
refresh:g_fieldcat.
ENDFORM. " summary_display
form list1 using r_ucomm like sy-ucomm rs_selfield type slis_selfield.
case r_ucomm.
when '&IC1'.
REFRESH g_t_text.
if rs_selfield-fieldname = 'EBELN'.
READ TABLE g_t_ekpo INDEX rs_selfield-tabindex.
CONCATENATE g_t_ekpo-ebeln g_t_ekpo-ebelp INTO g_ebeln. "CRQ94538-Capture text
SHIFT g_ebeln LEFT DELETING LEADING space.
PERFORM read_text USING g_ebeln g_t_text[].
IF g_t_text[] IS NOT INITIAL.
PERFORM pop_up_with_table .
ENDIF.
endif.
when 'OTHERS'.
leave to screen 0.
endcase.
endform. "list1
FORM read_text USING p_ebeln p_t_itab LIKE g_t_text1[].
PERFORM fill_readtext USING p_ebeln 'EKPO' 'F01' p_t_itab.
ENDFORM. " f0008_read_text
FORM fill_readtext USING p_vbeln
p_object
p_textid
pt_itab LIKE g_t_text[] .
DATA: ls_itab LIKE LINE OF g_t_text,
l_header LIKE thead,
l_tdname LIKE thead-tdname.
CLEAR pt_itab.
REFRESH pt_itab.
MOVE p_vbeln TO l_tdname.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = p_textid
language = sy-langu
name = l_tdname
object = p_object
IMPORTING
header = l_header
TABLES
lines = pt_itab
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
endform. "fill_readtext
FORM pop_up_with_table .
CALL FUNCTION 'POPUP_WITH_TABLE'
EXPORTING
endpos_col = 82
endpos_row = 20
startpos_col = 10
startpos_row = 10
titletext = ' '
TABLES
valuetab = g_t_text
EXCEPTIONS
break_off = 1
OTHERS = 2.
IF sy-subrc NE 0.
CLEAR g_t_text.
ENDIF.
ENDFORM. " f4000_pop_up_with_table
FORM download .
if g_t_ekpo[] is not initial.
loop at g_t_ekpo.
* concatenate text-001 g_t_ekpo-matnr into g_t_ekpo-matnr.
PERFORM convert_table_to_string.
modify g_t_ekpo.
clear g_t_ekpo.
endloop.
endif.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:/KKVT/TEST.XLS'
filetype = 'ASC'
write_field_separator = 'X'
TABLES
data_tab = g_t_ekpo
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
message: 'file downloaded' type 'S'.
ENDIF.
ENDFORM. " download
FORM convert_table_to_string .
DATA: str TYPE string,
len TYPE i,
tot_len TYPE i.
FIELD-SYMBOLS <fs1> TYPE ANY.
IF g_t_ekpo-ebeln IS NOT INITIAL.
CONCATENATE g_t_ekpo-ebeln g_t_ekpo-ebelp INTO g_ebeln. "CRQ94538-Capture text
SHIFT g_ebeln LEFT DELETING LEADING space.
PERFORM read_text USING g_ebeln g_t_text[].
IF g_t_text[] IS NOT INITIAL.
CLEAR: len,
tot_len,
str.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE g_t_text TO <fs1>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
DESCRIBE FIELD <fs1> LENGTH len IN CHARACTER MODE.
ADD len TO tot_len.
ENDDO.
CALL FUNCTION 'CONVERT_TABLE_TO_STRING'
EXPORTING
i_tabline_length = tot_len
IMPORTING
e_string = str
TABLES
it_table = g_t_text[].
IF sy-subrc = 0.
g_t_ekpo-text = str.
ENDIF.
ELSE.
CLEAR: g_t_ekpo-text,
tot_len,
len,
str. .
ENDIF.
ENDIF.
ENDFORM. " convert_table_to_string
Edited by: Kiran K on Nov 18, 2010 5:21 AM -
Downloading to Excel Sheet from ALV display
Hi Friends,
Here i am displaying data in ALV grid. i want to download data to excel file . My data is stored in a field symbol.Could you please tell me how to download this? Currently i am trying with
CALL FUNCTION 'OLE_SERVER_CHECK'
CALL FUNCTION 'XXL_SIMPLE_API'
But i am not getting the result.
Thanks.Download a report to excel with format (border, color cell, etc)
Try this program...
Code:
REPORT ZTEST NO STANDARD PAGE HEADING.
this report demonstrates how to send some ABAP data to an
EXCEL sheet using OLE automation.
INCLUDE OLE2INCL.
handles for OLE objects
DATA: H_EXCEL TYPE OLE2_OBJECT, " Excel object
H_MAPL TYPE OLE2_OBJECT, " list of workbooks
H_MAP TYPE OLE2_OBJECT, " workbook
H_ZL TYPE OLE2_OBJECT, " cell
H_F TYPE OLE2_OBJECT. " font
TABLES: SPFLI.
DATA H TYPE I.
table of flights
DATA: IT_SPFLI LIKE SPFLI OCCURS 10 WITH HEADER LINE.
*& Event START-OF-SELECTION
START-OF-SELECTION.
read flights
SELECT * FROM SPFLI INTO TABLE IT_SPFLI UP TO 10 ROWS.
display header
ULINE (61).
WRITE: / SY-VLINE NO-GAP,
(3) 'Flg'(001) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(4) 'Nr'(002) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(20) 'Von'(003) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(20) 'Nach'(004) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP,
(8) 'Zeit'(005) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP.
ULINE /(61).
display flights
LOOP AT IT_SPFLI.
WRITE: / SY-VLINE NO-GAP,
IT_SPFLI-CARRID COLOR COL_KEY NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-CONNID COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-CITYFROM COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-CITYTO COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP,
IT_SPFLI-DEPTIME COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP.
ENDLOOP.
ULINE /(61).
tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-007
EXCEPTIONS
OTHERS = 1.
start Excel
CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
PERFORM ERR_HDL.
SET PROPERTY OF H_EXCEL 'Visible' = 1.
CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'c:\kis_excel.xls'
PERFORM ERR_HDL.
tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-008
EXCEPTIONS
OTHERS = 1.
get list of workbooks, initially empty
CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
PERFORM ERR_HDL.
add a new workbook
CALL METHOD OF H_MAPL 'Add' = H_MAP.
PERFORM ERR_HDL.
tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-009
EXCEPTIONS
OTHERS = 1.
output column headings to active Excel sheet
PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
PERFORM FILL_CELL USING 1 2 0 '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).
LOOP AT IT_SPFLI.
copy flights to active EXCEL sheet
H = SY-TABIX + 1.
PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
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.
changes by Kishore - start
CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
CALL METHOD OF H_EXCEL 'Worksheets' = H_MAPL." EXPORTING #1 = 2.
PERFORM ERR_HDL.
add a new workbook
CALL METHOD OF H_MAPL 'Add' = H_MAP EXPORTING #1 = 2.
PERFORM ERR_HDL.
tell user what is going on
SET PROPERTY OF H_MAP 'NAME' = 'COPY'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = TEXT-009
EXCEPTIONS
OTHERS = 1.
output column headings to active Excel sheet
PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
PERFORM FILL_CELL USING 1 2 0 '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).
LOOP AT IT_SPFLI.
copy flights to active EXCEL sheet
H = SY-TABIX + 1.
PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
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.
changes by Kishore - end
disconnect from Excel
CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'C:\SKV.XLS'.
FREE OBJECT H_EXCEL.
PERFORM ERR_HDL.
FORM FILL_CELL *
sets cell at coordinates i,j to value val boldtype bold *
FORM FILL_CELL USING I J BOLD VAL.
CALL METHOD OF H_EXCEL 'Cells' = H_ZL EXPORTING #1 = I #2 = J.
PERFORM ERR_HDL.
SET PROPERTY OF H_ZL 'Value' = VAL .
PERFORM ERR_HDL.
GET PROPERTY OF H_ZL 'Font' = H_F.
PERFORM ERR_HDL.
SET PROPERTY OF H_F 'Bold' = BOLD .
PERFORM ERR_HDL.
ENDFORM.
*& Form ERR_HDL
outputs OLE error if any *
--> p1 text
<-- p2 text
FORM ERR_HDL.
IF SY-SUBRC <> 0.
WRITE: / 'Fehler bei OLE-Automation:'(010), SY-SUBRC.
STOP.
ENDIF.
ENDFORM. " ERR_HDL
Regards,
Pavan -
ALV download to Excel--Problem with Column Headers
Hi,
I have created a dynamic internal table and displaying it as ALV using SALV classes. Problem is that when I download this ALV to Excel I'm not getting Column headings same as they are in ALV display.
I mean in Excel it is showing Column headings taken from domain or data element.
While creating dynamic table i'm passing short/ Medium & Long text too. Still it is not working.
Any kinda help is appreciated.
Thanks & Regards,
Vivek Gaur
Edited by: Vivek Gaur on Nov 4, 2009 2:04 PMLook I cant actually post the code as it is divided in some global classes and main program. But i can elaborate the steps little further:
1: I have created a field catalog for Dynamic internal table. In it i have passed every necessary field along with short/medium/Long texts.
2: I fill up this dynamic table with data.
3: I assign a field symbol to this dynamic internal table.
4: I pass this field symbol to the factory method of CL_SALV_TABLE Class.
Thats it buddy..Hope u have understood my problem. -
ALV download to EXCEL -- probs with SAPGUI 6.40 and EXCEL 2007
I have a method in an ALV grid which performs a dowload to excel
Here's the method
method download_to_excel.
field-symbols:
<fs0> type standard table,
<fs1> type standard table.
assign g_outtab1->* to <fs0>.
assign g_fldcat1->* to <fs1>.
call function 'LVC_TRANSFER_TO_KKBLO'
exporting
it_fieldcat_lvc = <fs1>
is_layout_lvc = m_cl_variant->ms_layout
is_tech_complete = ' '
importing
es_layout_kkblo = ls_layout
et_fieldcat_kkblo = lt_fieldcat.
loop at lt_fieldcat into lt_fieldcat_wa.
clear lt_fieldcat_wa-tech_complete.
if lt_fieldcat_wa-tabname is initial.
lt_fieldcat_wa-tabname = '1'.
modify lt_fieldcat from lt_fieldcat_wa.
endif.
l_tabname = lt_fieldcat_wa-tabname.
endloop.
call function 'ALV_XXL_CALL'
exporting
i_tabname = l_tabname
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_title = sy-title
tables
it_outtab = <fs0>
exceptions
fatal_error = 1
no_display_possible = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endmethod.
Basically the method converts the GRID table I'm displaying into the format requred for FMOD ALV_XXL_CALL' -- the field catalog is slightly different but no big deal here.
This works fine when downloading to EXCEL 2003 but short dumps when trying to do the same thing for EXCEL 2007.
Workstation is running Windows XP / SP2 build 2600 in both cases.
Any fixes etc or should I stick with EXCEL 2003 until forced to upgrade.
Cheers
jimboHi all
Seems the problem disappeared after applying the latest patch to SAP_GUI 6.40.
I haven't tried SAP_GUI 7.0 yet.
Thanks anyway
Cheers
jimbo -
ALV download to EXCEL with column headings etc.
Getting data from a grid to EXCEL can be done in "List" mode vis system==>save etc but it's not particularly user friendly and in any case if you are displaying a nice ALV why should the user have to switch into LIST mode anyway.
Anyway here's a decent way to do it and it gives great formatted column headings etc etc.
1) in the ON_TOOLBAR method add this code
method ON_TOOLBAR.
type-pools icon.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'EXCEL' TO ls_toolbar-function.
MOVE space TO ls_toolbar-disabled.
MOVE icon_xxl TO ls_toolbar-icon.
MOVE 'Excel' TO ls_toolbar-quickinfo.
MOVE 'EXCEL' TO ls_toolbar-text.
APPEND ls_toolbar TO e_object->mt_toolbar.
2) In the ON_USER_COMMAND method add the following
(if you have a class defined with SE24 you don't need the commented code).
method ON_USER_COMMAND.
FOR EVENT before_user_command OF cl_gui_alv_grid
IMPORTING
e_ucomm
sender.
CASE e_ucomm.
....... other toolbar funcs if you have any
WHEN 'EXCEL'.
CALL METHOD me->download_to_excel.
ENDCASE.
endmethod.
3) code this method to download to EXCEL
method DOWNLOAD_TO_EXCEL.
FIELD-SYMBOLS:
<fs0> TYPE STANDARD TABLE,
<fs1> TYPE STANDARD TABLE.
ASSIGN g_outtab1->* TO <fs0>.
ASSIGN g_fldcat1->* TO <fs1>.
CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO'
EXPORTING
it_fieldcat_lvc = <fs1>
is_layout_lvc = m_cl_variant->ms_layout
is_tech_complete = ' '
IMPORTING
es_layout_kkblo = ls_layout
et_fieldcat_kkblo = lt_fieldcat.
LOOP AT lt_fieldcat INTO lt_fieldcat_wa.
CLEAR lt_fieldcat_wa-tech_complete.
IF lt_fieldcat_wa-tabname IS INITIAL.
lt_fieldcat_wa-tabname = '1'.
MODIFY lt_fieldcat FROM lt_fieldcat_wa.
ENDIF.
l_tabname = lt_fieldcat_wa-tabname.
ENDLOOP.
CALL FUNCTION 'ALV_XXL_CALL'
EXPORTING
i_tabname = l_tabname
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_title = sy-title
TABLES
it_outtab = <fs0>
EXCEPTIONS
fatal_error = 1
no_display_possible = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
endmethod.
You get nice column headings etc and decently formatted EXCEL spreadsheet.
For Office 2007 I think you need to apply a SAP note but it certainly works with OFFICE 2003 which is what we are still using.
Cheers
jimboGetting data from a grid to EXCEL can be done in "List" mode vis system==>save etc but it's not particularly user friendly and in any case if you are displaying a nice ALV why should the user have to switch into LIST mode anyway.
Anyway here's a decent way to do it and it gives great formatted column headings etc etc.
1) in the ON_TOOLBAR method add this code
method ON_TOOLBAR.
type-pools icon.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'EXCEL' TO ls_toolbar-function.
MOVE space TO ls_toolbar-disabled.
MOVE icon_xxl TO ls_toolbar-icon.
MOVE 'Excel' TO ls_toolbar-quickinfo.
MOVE 'EXCEL' TO ls_toolbar-text.
APPEND ls_toolbar TO e_object->mt_toolbar.
2) In the ON_USER_COMMAND method add the following
(if you have a class defined with SE24 you don't need the commented code).
method ON_USER_COMMAND.
FOR EVENT before_user_command OF cl_gui_alv_grid
IMPORTING
e_ucomm
sender.
CASE e_ucomm.
....... other toolbar funcs if you have any
WHEN 'EXCEL'.
CALL METHOD me->download_to_excel.
ENDCASE.
endmethod.
3) code this method to download to EXCEL
method DOWNLOAD_TO_EXCEL.
FIELD-SYMBOLS:
<fs0> TYPE STANDARD TABLE,
<fs1> TYPE STANDARD TABLE.
ASSIGN g_outtab1->* TO <fs0>.
ASSIGN g_fldcat1->* TO <fs1>.
CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO'
EXPORTING
it_fieldcat_lvc = <fs1>
is_layout_lvc = m_cl_variant->ms_layout
is_tech_complete = ' '
IMPORTING
es_layout_kkblo = ls_layout
et_fieldcat_kkblo = lt_fieldcat.
LOOP AT lt_fieldcat INTO lt_fieldcat_wa.
CLEAR lt_fieldcat_wa-tech_complete.
IF lt_fieldcat_wa-tabname IS INITIAL.
lt_fieldcat_wa-tabname = '1'.
MODIFY lt_fieldcat FROM lt_fieldcat_wa.
ENDIF.
l_tabname = lt_fieldcat_wa-tabname.
ENDLOOP.
CALL FUNCTION 'ALV_XXL_CALL'
EXPORTING
i_tabname = l_tabname
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_title = sy-title
TABLES
it_outtab = <fs0>
EXCEPTIONS
fatal_error = 1
no_display_possible = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
endmethod.
You get nice column headings etc and decently formatted EXCEL spreadsheet.
For Office 2007 I think you need to apply a SAP note but it certainly works with OFFICE 2003 which is what we are still using.
Cheers
jimbo -
Download to Excel - multiple sheets
hi All,
I successfully create a xls with multiple worksheets
<b>Method 1:</b>(http://www.sapdevelopment.co.uk/ms/ms_excel.htm)
CREATE OBJECT application 'excel.application'
CALL METHOD OF sheet 'Cells' = cells
EXPORTING #1 = myY #2 = myX.
SET PROPERTY OF cells 'Value' = 'hello'.
But this way of cell by cell populating, is too slow; I have 10,000 rows of records to download to excel as report.
Then i tried second way <b>Method 2:</b>
CALL FUNCTION 'XXL_SIMPLE_API'
This is much faster, but it does not allow me to have multiple sheets.
Can anyone advise how to speed up the process using method 1 ?
Thanks in advance.
Ee SiongTry this....
*& Report ZETA_EXCEL_DOWNLOAD_CLIPBOARD *
report zeta_excel_download_clipboard .
include ole2incl.
data: w_cell1 type ole2_object,
w_cell2 type ole2_object.
*--- Ole data Declarations
data: h_excel type ole2_object, " Excel object
h_mapl type ole2_object, " list of workbooks
h_map type ole2_object, " workbook
h_zl type ole2_object, " cell
h_f type ole2_object, " font
gs_interior type ole2_object, " Pattern
worksheet type ole2_object,
h_cell type ole2_object,
h_cell1 type ole2_object,
range type ole2_object,
h_sheet2 type ole2_object,
h_sheet3 type ole2_object,
gs_font type ole2_object,
flg_stop(1) type c.
Internal table Declaration
data: begin of t_excel occurs 0,
vkorg(20) type c, "Sales Org
vbtyp(20) type c, "Document Category
auart(20) type c, "Document Type
ernam(20) type c, "Created By
vbeln(20) type c, "Document Number
posnr(20) type c, "Item Number
erdat(20) type c, "Created Date
vdatu(20) type c, "Header Requested Delivery Date
reqdat(20) type c, "Request date
condat(20) type c, "Confirm date
lifsk(20) type c, "Header Block
txt30(30) type c, "Order User Status Description
lifsp(20) type c, "Line Block
dispo(20) type c, "MRP Controller
dsnam(20) type c, "MRP Controller Description
vmsta(20) type c, "Material Sales Status
kunnr(20) type c, "Sold To
cname(35) type c, "Sold To Name
regio(20) type c, "State
cufd(10) type c, "CUD
bstnk(20) type c, "PO#
bsark(20) type c, "Ordering Method
matnr(20) type c, "Material
maktx(35) type c, "Material Description
t200(20) type c, "T200
vtext(20) type c, "T200 Description
matkl(20) type c, "Material Group
zzbomind(7) type c, "BOM Indicator
ostat(20) type c, "Order Status
cmgst(20) type c, "CRD
inco1(20) type c, "Incoterms
oqty(20) type c, "Order Quantity
pqty(20) type c, "Open Quantity
unit(20) type c, "UOM
onet(20) type c, "Order Value
pnet(20) type c, "Open Value
curr(20) type c, "Currency key
so_bezei like tvkbt-bezei,"Sales Office
sg_bezei like tvgrt-bezei,"Sales Group
bname(20) type c, "Ordering Party
contact(20) type c, "Contact Name
telf1(20) type c, "Contact telf1
reqqty(20) type c, "Item Request qty
reqval(20) type c, "Item Request value
conqty(20) type c, "Item Confirm qty
conval(20) type c, "Item Confirm value
zzrev(02) type c, "Revenue recognition acceptance
bezei(20) type c, "Revenue recognition text
vgbel(20) type c, "Reference Order for RETURNS
0008text(255) type c, "Internal Order Comment Text
end of t_excel.
data: t_excel_bckord like t_excel occurs 0 with header line,
t_excel_bcklog like t_excel occurs 0 with header line,
t_excel_blkord like t_excel occurs 0 with header line.
types: data1(1500) type c,
ty type table of data1.
data: it type ty with header line,
it_2 type ty with header line,
it_3 type ty with header line,
rec type sy-tfill,
deli(1) type c,
l_amt(18) type c.
data: begin of hex,
tab type x,
end of hex.
field-symbols: <fs> .
constants cns_09(2) type n value 09.
assign deli to <fs> type 'X'.
hex-tab = cns_09.
<fs> = hex-tab.
data gv_sheet_name(20) type c .
M A C R O Declaration
define ole_check_error.
if &1 ne 0.
message e001(zz) with &1.
exit.
endif.
end-of-definition.
t_excel_bckord-vkorg = 'ABC'.
t_excel_bckord-vbtyp = 'DEF'.
t_excel_bckord-auart = 'GHI'.
t_excel_bckord-ernam = 'JKL'.
t_excel_bckord-vbeln = 'MNO'.
t_excel_bckord-0008text = 'XYZ'.
append t_excel_bckord.
t_excel_bckord-vkorg = 'ABC1'.
t_excel_bckord-vbtyp = 'DEF1'.
t_excel_bckord-auart = 'GHI1'.
t_excel_bckord-ernam = 'JKL1'.
t_excel_bckord-vbeln = 'MNO1'.
t_excel_bckord-0008text = 'XYZ1'.
append t_excel_bckord.
t_excel_bckord-vkorg = 'ABC2'.
t_excel_bckord-vbtyp = 'DEF2'.
t_excel_bckord-auart = 'GHI2'.
t_excel_bckord-ernam = 'JKL2'.
t_excel_bckord-vbeln = 'MNO2'.
t_excel_bckord-0008text = 'XYZ2'.
append t_excel_bckord.
t_excel_bcklog-vkorg = 'ABC'.
t_excel_bcklog-vbtyp = 'DEF'.
t_excel_bcklog-auart = 'GHI'.
t_excel_bcklog-ernam = 'JKL'.
t_excel_bcklog-vbeln = 'MNO'.
t_excel_bcklog-0008text = 'XYZ'.
append t_excel_bcklog.
t_excel_bcklog-vkorg = 'ABC1'.
t_excel_bcklog-vbtyp = 'DEF1'.
t_excel_bcklog-auart = 'GHI1'.
t_excel_bcklog-ernam = 'JKL1'.
t_excel_bcklog-vbeln = 'MNO1'.
t_excel_bcklog-0008text = 'XYZ1'.
append t_excel_bcklog.
t_excel_bcklog-vkorg = 'ABC2'.
t_excel_bcklog-vbtyp = 'DEF2'.
t_excel_bcklog-auart = 'GHI2'.
t_excel_bcklog-ernam = 'JKL2'.
t_excel_bcklog-vbeln = 'MNO2'.
t_excel_bcklog-0008text = 'XYZ2'.
append t_excel_bcklog.
t_excel_bcklog-vkorg = 'ABC3'.
t_excel_bcklog-vbtyp = 'DEF3'..
t_excel_bcklog-auart = 'GHI3'.
t_excel_bcklog-ernam = 'JKL3'.
t_excel_bcklog-vbeln = 'MNO3'.
t_excel_bcklog-0008text = 'XYZ3'.
append t_excel_bcklog.
t_excel_blkord-vkorg = 'ABC'.
t_excel_blkord-vbtyp = 'DEF'.
t_excel_blkord-auart = 'GHI'.
t_excel_blkord-ernam = 'JKL'.
t_excel_blkord-vbeln = 'MNO'.
t_excel_blkord-0008text = 'XYZ'.
append t_excel_blkord.
t_excel_blkord-vkorg = 'ABC1'.
t_excel_blkord-vbtyp = 'DEF1'.
t_excel_blkord-auart = 'GHI1'.
t_excel_blkord-ernam = 'JKL1'.
t_excel_blkord-vbeln = 'MNO1'.
t_excel_blkord-0008text = 'XYZ1'.
append t_excel_blkord.
t_excel_blkord-vkorg = 'ABC2'.
t_excel_blkord-vbtyp = 'DEF2'.
t_excel_blkord-auart = 'GHI2'.
t_excel_blkord-ernam = 'JKL2'.
t_excel_blkord-vbeln = 'MNO2'.
t_excel_blkord-0008text = 'XYZ2'.
append t_excel_blkord.
t_excel_blkord-vkorg = 'ABC3'.
t_excel_blkord-vbtyp = 'DEF3'..
t_excel_blkord-auart = 'GHI3'.
t_excel_blkord-ernam = 'JKL3'.
t_excel_blkord-vbeln = 'MNO3'.
t_excel_blkord-0008text = 'XYZ3'.
append t_excel_blkord.
t_excel_blkord-vkorg = 'ABC4'.
t_excel_blkord-vbtyp = 'DEF4'..
t_excel_blkord-auart = 'GHI4'.
t_excel_blkord-ernam = 'JKL4'.
t_excel_blkord-vbeln = 'MNO4'.
t_excel_blkord-0008text = 'XYZ4'.
append t_excel_blkord.
loop at t_excel_bckord.
concatenate
t_excel_bckord-vkorg
t_excel_bckord-vbtyp
t_excel_bckord-auart
t_excel_bckord-ernam
t_excel_bckord-vbeln
t_excel_bckord-posnr
t_excel_bckord-erdat
t_excel_bckord-vdatu
t_excel_bckord-reqdat
t_excel_bckord-condat
t_excel_bckord-lifsk
t_excel_bckord-txt30
t_excel_bckord-lifsp
t_excel_bckord-dispo
t_excel_bckord-dsnam
t_excel_bckord-vmsta
t_excel_bckord-kunnr
t_excel_bckord-cname
t_excel_bckord-regio
t_excel_bckord-cufd
t_excel_bckord-bstnk
t_excel_bckord-bsark
t_excel_bckord-matnr
t_excel_bckord-maktx
t_excel_bckord-t200
t_excel_bckord-vtext
t_excel_bckord-matkl
t_excel_bckord-zzbomind
t_excel_bckord-ostat
t_excel_bckord-cmgst
t_excel_bckord-inco1
t_excel_bckord-oqty
t_excel_bckord-pqty
t_excel_bckord-unit
t_excel_bckord-onet
t_excel_bckord-pnet
t_excel_bckord-curr
t_excel_bckord-so_bezei
t_excel_bckord-sg_bezei
t_excel_bckord-bname
t_excel_bckord-contact
t_excel_bckord-telf1
t_excel_bckord-reqqty
t_excel_bckord-reqval
t_excel_bckord-conqty
t_excel_bckord-conval
t_excel_bckord-zzrev
t_excel_bckord-bezei
t_excel_bckord-vgbel
t_excel_bckord-0008text
into it
separated by deli.
append it.
clear it.
endloop.
loop at t_excel_bcklog.
concatenate
t_excel_bcklog-vkorg
t_excel_bcklog-vbtyp
t_excel_bcklog-auart
t_excel_bcklog-ernam
t_excel_bcklog-vbeln
t_excel_bcklog-posnr
t_excel_bcklog-erdat
t_excel_bcklog-vdatu
t_excel_bcklog-reqdat
t_excel_bcklog-condat
t_excel_bcklog-lifsk
t_excel_bcklog-txt30
t_excel_bcklog-lifsp
t_excel_bcklog-dispo
t_excel_bcklog-dsnam
t_excel_bcklog-vmsta
t_excel_bcklog-kunnr
t_excel_bcklog-cname
t_excel_bcklog-regio
t_excel_bcklog-cufd
t_excel_bcklog-bstnk
t_excel_bcklog-bsark
t_excel_bcklog-matnr
t_excel_bcklog-maktx
t_excel_bcklog-t200
t_excel_bcklog-vtext
t_excel_bcklog-matkl
t_excel_bcklog-zzbomind
t_excel_bcklog-ostat
t_excel_bcklog-cmgst
t_excel_bcklog-inco1
t_excel_bcklog-oqty
t_excel_bcklog-pqty
t_excel_bcklog-unit
t_excel_bcklog-onet
t_excel_bcklog-pnet
t_excel_bcklog-curr
t_excel_bcklog-so_bezei
t_excel_bcklog-sg_bezei
t_excel_bcklog-bname
t_excel_bcklog-contact
t_excel_bcklog-telf1
t_excel_bcklog-reqqty
t_excel_bcklog-reqval
t_excel_bcklog-conqty
t_excel_bcklog-conval
t_excel_bcklog-zzrev
t_excel_bcklog-bezei
t_excel_bcklog-vgbel
t_excel_bcklog-0008text
into it_2
separated by deli.
append it_2.
clear it_2.
endloop.
loop at t_excel_blkord.
concatenate
t_excel_blkord-vkorg
t_excel_blkord-vbtyp
t_excel_blkord-auart
t_excel_blkord-ernam
t_excel_blkord-vbeln
t_excel_blkord-posnr
t_excel_blkord-erdat
t_excel_blkord-vdatu
t_excel_blkord-reqdat
t_excel_blkord-condat
t_excel_blkord-lifsk
t_excel_blkord-txt30
t_excel_blkord-lifsp
t_excel_blkord-dispo
t_excel_blkord-dsnam
t_excel_blkord-vmsta
t_excel_blkord-kunnr
t_excel_blkord-cname
t_excel_blkord-regio
t_excel_blkord-cufd
t_excel_blkord-bstnk
t_excel_blkord-bsark
t_excel_blkord-matnr
t_excel_blkord-maktx
t_excel_blkord-t200
t_excel_blkord-vtext
t_excel_blkord-matkl
t_excel_blkord-zzbomind
t_excel_blkord-ostat
t_excel_blkord-cmgst
t_excel_blkord-inco1
t_excel_blkord-oqty
t_excel_blkord-pqty
t_excel_blkord-unit
t_excel_blkord-onet
t_excel_blkord-pnet
t_excel_blkord-curr
t_excel_blkord-so_bezei
t_excel_blkord-sg_bezei
t_excel_blkord-bname
t_excel_blkord-contact
t_excel_blkord-telf1
t_excel_blkord-reqqty
t_excel_blkord-reqval
t_excel_blkord-conqty
t_excel_blkord-conval
t_excel_blkord-zzrev
t_excel_blkord-bezei
t_excel_blkord-vgbel
t_excel_blkord-0008text
into it_3
separated by deli.
append it_3.
clear it_3.
endloop.
if h_excel-header = space or h_excel-handle = -1.
start Excel
create object h_excel 'EXCEL.APPLICATION'.
endif.
PERFORM err_hdl.
*--- get list of workbooks, initially empty
call method of h_excel 'Workbooks' = h_mapl.
PERFORM err_hdl.
set property of h_excel 'Visible' = 1.
add a new workbook
call method of h_mapl 'Add' = h_map.
PERFORM err_hdl.
*GV_SHEET_NAME = '1st SHEET'.
gv_sheet_name = 'Back Orders'.
get property of h_excel 'ACTIVESHEET' = worksheet.
set property of worksheet 'Name' = gv_sheet_name .
*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 50.
call method of h_excel 'Range' = h_cell
exporting
#1 = w_cell1
#2 = w_cell2.
*CALL METHOD OF gs_cells 'Select' .
get property of h_cell 'Font' = gs_font .
set property of gs_font 'Bold' = 1 .
data l_rc type i.
call method cl_gui_frontend_services=>clipboard_export
importing
data = it[]
changing
rc = l_rc
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 1.
PERFORM err_hdl.
call method of h_excel 'Range' = range
exporting
#1 = w_cell1
#2 = w_cell2.
call method of range 'Select'.
PERFORM err_hdl.
call method of worksheet 'Paste'.
PERFORM err_hdl.
CALL METHOD OF h_excel 'QUIT'.
*GV_SHEET_NAME = '2ND SHEET'.
gv_sheet_name = 'Backlog'.
get property of h_excel 'Sheets' = h_sheet2 .
call method of h_sheet2 'Add' = h_map.
set property of h_map 'Name' = gv_sheet_name .
get property of h_excel 'ACTIVESHEET' = worksheet.
*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 50.
call method of h_excel 'Range' = h_cell
exporting
#1 = w_cell1
#2 = w_cell2.
get property of h_cell 'Font' = gs_font .
set property of gs_font 'Bold' = 1 .
call method cl_gui_frontend_services=>clipboard_export
importing
data = it_2[]
changing
rc = l_rc
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 1.
PERFORM err_hdl.
call method of h_excel 'Range' = range
exporting
#1 = w_cell1
#2 = w_cell2.
call method of range 'Select'.
PERFORM err_hdl.
call method of worksheet 'Paste'.
*GV_SHEET_NAME = '3rd SHEET'.
gv_sheet_name = 'Blocked Orders'.
get property of h_excel 'Sheets' = h_sheet3 .
call method of h_sheet3 'Add' = h_map.
set property of h_map 'Name' = gv_sheet_name .
get property of h_excel 'ACTIVESHEET' = worksheet.
*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 50.
call method of h_excel 'Range' = h_cell
exporting
#1 = w_cell1
#2 = w_cell2.
get property of h_cell 'Font' = gs_font .
set property of gs_font 'Bold' = 1 .
call method cl_gui_frontend_services=>clipboard_export
importing
data = it_3[]
changing
rc = l_rc
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
call method of h_excel 'Cells' = w_cell1
exporting
#1 = 1
#2 = 1.
call method of h_excel 'Cells' = w_cell2
exporting
#1 = 1
#2 = 1.
PERFORM err_hdl.
call method of h_excel 'Range' = range
exporting
#1 = w_cell1
#2 = w_cell2.
call method of range 'Select'.
PERFORM err_hdl.
call method of worksheet 'Paste'.
*--- disconnect from Excel
free object h_zl.
free object h_mapl.
free object h_map.
free object h_excel. -
Hi all,
is there any function module which i can download the excel sheet into internal table.
I have requirement like this way.
i have two records in excel file like
a b c 10 100
a b c 20 100
I have to copy into internal table these values as it is and then I want to do calculations based on 10 & 20.
I am trying to do it with Field symbols but not able to do so.
LOOP AT INTERN1.
IF KZHEADER = 'X'
AND INTERN1-ROW = 1.
CONTINUE.
ENDIF.
TIND = INTERN1-COL.
CONCATENATE 'DATA_TAB-VALUE_' TIND INTO ZWFELD.
ASSIGN (ZWFELD) TO <fs1>.
<fs1> = INTERN1-VALUE.
AT END OF ROW.
APPEND DATA_TAB.
CLEAR DATA_TAB.
ENDAT.
ENDLOOP.
Any suggetions are really appreciatable.
shyleshHi,
FM : 'SXPG_COMMAND_EXECUTE'
For full program code check the following link:
http://www.sap-img.com/abap/download-in-background-in-excel-format.htm
Regards,
Bhaskar
Maybe you are looking for
-
Quicksilver 2002, best AGP card that I can use ADC port?
I currently have a 2002 QS 933mhz, and would like to add Core Image support. However, I am kind of on a budget, and need to still be able to use my 17'' ADC studio display. I'm okay with having to tape pins 3 and 11 if necessary, but I need the card
-
SYstem Shuts Down Every Time if on AC Power.
1. This does not happen if running on battery. 2. Lenovo suggested test seem to prove it is not a hardware problem --doesn't happen if on "F1" key. 3. Replaced power cord -no change 4. They think it could be defective Windows 7 Upgrade. Did not po
-
Fireworks (cs3) could not run the script
When I choose in adobe dreamweaver: command->create web photo album fireworks (fw) is launched. The problem is that when fw is launched I got the following message: "Could not run the script. The file was not found." So the result is a webpage withou
-
Error message at startup. Unable to continue.
Hi All Getting message "Runtime Error! This application has requested The Runtime to terminate it in an unusual way. Please contact the applications support team for more information." Running XP and have made no changes to laptop since the last time
-
RH_STRUC_GET example
Hi, Does anyone have sample code that I can pinch. I want to get all the employee numbers that report to a manager. I assume the best way is using RH_STRUC_GET but there may be a better way? Thank you.