Skip to content

Commit 600179a

Browse files
authored
update
1 parent 0b16e08 commit 600179a

File tree

1 file changed

+65
-65
lines changed

1 file changed

+65
-65
lines changed

docs/development/xlsx.md

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,71 @@ outline: [2, 6]
66
The abap2UI5 framework, being purely ABAP, allows you to leverage the existing XLSX features of your ABAP system seamlessly. You can implement file uploads or downloads, converting the contents of XLSX files into internal ABAP tables or exporting tables to XLSX files.
77

88

9+
#### Upload
10+
11+
Transform uploaded content into an internal table:
12+
13+
::: code-group
14+
15+
```abap
16+
METHOD z2ui5_if_app~main.
17+
18+
client->view_display( z2ui5_cl_xml_view=>factory(
19+
)->page(
20+
)->_z2ui5( )->file_uploader(
21+
value = client->_bind_edit( mv_value )
22+
path = client->_bind_edit( mv_path )
23+
placeholder = 'filepath here...'
24+
upload = client->_event( 'UPLOAD' )
25+
)->stringify( ) ).
26+
27+
CASE client->get( )-event.
28+
WHEN 'UPLOAD'.
29+
30+
data(lr_itab) = lcl_help=>itab_get_by_xlsx( mv_value ).
31+
"further process with itab...
32+
client->message_box_display( `xlsx uploaded` ).
33+
ENDCASE.
34+
35+
ENDMETHOD.
36+
```
37+
38+
```abap [LCL_HELP]
39+
CLASS lcl_help DEFINITION.
40+
41+
PUBLIC SECTION.
42+
43+
CLASS-METHODS itab_get_by_xlsx
44+
IMPORTING
45+
VALUE(val) TYPE string
46+
RETURNING
47+
VALUE(result) TYPE REF TO data.
48+
49+
ENDCLASS.
50+
51+
CLASS lcl_help IMPLEMENTATION.
52+
53+
METHOD itab_get_by_xlsx.
54+
55+
SPLIT val AT `;` INTO DATA(lv_dummy) DATA(lv_data).
56+
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
57+
58+
DATA(lv_xdata) = z2ui5_cl_util=>conv_decode_x_base64( lv_data ).
59+
DATA(lo_excel) = NEW cl_fdt_xl_spreadsheet(
60+
document_name = `test`
61+
xdocument = lv_xdata ) .
62+
63+
lo_excel->if_fdt_doc_spreadsheet~get_worksheet_names(
64+
IMPORTING worksheet_names = DATA(lt_worksheets) ).
65+
66+
result = lo_excel->if_fdt_doc_spreadsheet~get_itab_from_worksheet( lt_worksheets[ 1 ] ).
67+
68+
ENDMETHOD.
69+
70+
ENDCLASS.
71+
```
72+
:::
73+
974
#### Download
1075

1176
Convert an internal table to an XLSX file and download it as a Base64-encoded file:
@@ -108,71 +173,6 @@ ENDCLASS.
108173
```
109174
:::
110175

111-
#### Upload
112-
113-
Transform uploaded content into an internal table:
114-
115-
::: code-group
116-
117-
```abap
118-
METHOD z2ui5_if_app~main.
119-
120-
client->view_display( z2ui5_cl_xml_view=>factory(
121-
)->page(
122-
)->_z2ui5( )->file_uploader(
123-
value = client->_bind_edit( mv_value )
124-
path = client->_bind_edit( mv_path )
125-
placeholder = 'filepath here...'
126-
upload = client->_event( 'UPLOAD' )
127-
)->stringify( ) ).
128-
129-
CASE client->get( )-event.
130-
WHEN 'UPLOAD'.
131-
132-
data(lr_itab) = lcl_help=>itab_get_by_xlsx( mv_value ).
133-
"further process with itab...
134-
client->message_box_display( `xlsx uploaded` ).
135-
ENDCASE.
136-
137-
ENDMETHOD.
138-
```
139-
140-
```abap [LCL_HELP]
141-
CLASS lcl_help DEFINITION.
142-
143-
PUBLIC SECTION.
144-
145-
CLASS-METHODS itab_get_by_xlsx
146-
IMPORTING
147-
VALUE(val) TYPE string
148-
RETURNING
149-
VALUE(result) TYPE REF TO data.
150-
151-
ENDCLASS.
152-
153-
CLASS lcl_help IMPLEMENTATION.
154-
155-
METHOD itab_get_by_xlsx.
156-
157-
SPLIT val AT `;` INTO DATA(lv_dummy) DATA(lv_data).
158-
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
159-
160-
DATA(lv_xdata) = z2ui5_cl_util=>conv_decode_x_base64( lv_data ).
161-
DATA(lo_excel) = NEW cl_fdt_xl_spreadsheet(
162-
document_name = `test`
163-
xdocument = lv_xdata ) .
164-
165-
lo_excel->if_fdt_doc_spreadsheet~get_worksheet_names(
166-
IMPORTING worksheet_names = DATA(lt_worksheets) ).
167-
168-
result = lo_excel->if_fdt_doc_spreadsheet~get_itab_from_worksheet( lt_worksheets[ 1 ] ).
169-
170-
ENDMETHOD.
171-
172-
ENDCLASS.
173-
```
174-
:::
175-
176176
For advanced functionality, consider leveraging the wonderful open-source project [abap2xlsx](https://github.com/abap2xlsx/abap2xlsx), which offers reusable APIs for all common XLSX operations.
177177

178178
::: tip **ABAP Cloud**

0 commit comments

Comments
 (0)