From 3ef605e74a94d8c25c018189bedf721ac59356a1 Mon Sep 17 00:00:00 2001 From: sandraros <34005250+sandraros@users.noreply.github.com> Date: Wed, 5 Jan 2022 10:31:48 +0100 Subject: [PATCH 1/4] Sandraros/check demo regressions 2 (#940) * remove sy-datum/sy-uzeit from demo programs * Fixed data for all demo programs Co-authored-by: sandraros Co-authored-by: Abo --- src/demos/zdemo_excel.prog.abap | 3 +- src/demos/zdemo_excel1.prog.abap | 10 +- src/demos/zdemo_excel1.w3mi.data.xlsx | Bin 0 -> 6388 bytes src/demos/zdemo_excel1.w3mi.xml | 28 + src/demos/zdemo_excel10.prog.abap | 53 +- src/demos/zdemo_excel10.w3mi.data.xlsx | Bin 0 -> 6942 bytes src/demos/zdemo_excel10.w3mi.xml | 29 + src/demos/zdemo_excel12.w3mi.data.xlsx | Bin 0 -> 6214 bytes src/demos/zdemo_excel12.w3mi.xml | 28 + src/demos/zdemo_excel13.w3mi.data.xlsx | Bin 0 -> 6225 bytes src/demos/zdemo_excel13.w3mi.xml | 28 + src/demos/zdemo_excel14.w3mi.data.xlsx | Bin 0 -> 6156 bytes src/demos/zdemo_excel14.w3mi.xml | 28 + src/demos/zdemo_excel15_01.w3mi.data.xlsx | Bin 0 -> 6314 bytes src/demos/zdemo_excel15_01.w3mi.xml | 28 + src/demos/zdemo_excel15_02.w3mi.data.xlsx | Bin 0 -> 6532 bytes src/demos/zdemo_excel15_02.w3mi.xml | 28 + src/demos/zdemo_excel15_03.w3mi.data.xlsx | Bin 0 -> 12659 bytes src/demos/zdemo_excel15_03.w3mi.xml | 28 + src/demos/zdemo_excel15_04.w3mi.data.xlsx | Bin 0 -> 8923 bytes src/demos/zdemo_excel15_04.w3mi.xml | 28 + src/demos/zdemo_excel15_05.w3mi.data.xlsx | Bin 0 -> 5793 bytes src/demos/zdemo_excel15_05.w3mi.xml | 28 + src/demos/zdemo_excel15_07.w3mi.data.xlsx | Bin 0 -> 6722 bytes src/demos/zdemo_excel15_07.w3mi.xml | 28 + src/demos/zdemo_excel15_08.w3mi.data.xlsx | Bin 0 -> 5828 bytes src/demos/zdemo_excel15_08.w3mi.xml | 28 + src/demos/zdemo_excel15_13.w3mi.data.xlsx | Bin 0 -> 6149 bytes src/demos/zdemo_excel15_13.w3mi.xml | 28 + src/demos/zdemo_excel15_24.w3mi.data.xlsx | Bin 0 -> 8860 bytes src/demos/zdemo_excel15_24.w3mi.xml | 28 + src/demos/zdemo_excel15_31.w3mi.data.xlsx | Bin 0 -> 10056 bytes src/demos/zdemo_excel15_31.w3mi.xml | 28 + src/demos/zdemo_excel16.w3mi.data.xlsx | Bin 0 -> 10926 bytes src/demos/zdemo_excel16.w3mi.xml | 28 + src/demos/zdemo_excel17.w3mi.data.xlsx | Bin 0 -> 5971 bytes src/demos/zdemo_excel17.w3mi.xml | 28 + src/demos/zdemo_excel18.w3mi.data.xlsx | Bin 0 -> 5736 bytes src/demos/zdemo_excel18.w3mi.xml | 28 + src/demos/zdemo_excel19.w3mi.data.xlsx | Bin 0 -> 7579 bytes src/demos/zdemo_excel19.w3mi.xml | 28 + src/demos/zdemo_excel2.w3mi.data.xlsx | Bin 0 -> 6843 bytes src/demos/zdemo_excel2.w3mi.xml | 28 + src/demos/zdemo_excel21.w3mi.data.xlsx | Bin 0 -> 10521 bytes src/demos/zdemo_excel21.w3mi.xml | 28 + src/demos/zdemo_excel22.prog.abap | 53 +- src/demos/zdemo_excel22.w3mi.data.xlsx | Bin 0 -> 7295 bytes src/demos/zdemo_excel22.w3mi.xml | 29 + src/demos/zdemo_excel23.w3mi.data.xlsx | Bin 0 -> 9289 bytes src/demos/zdemo_excel23.w3mi.xml | 28 + src/demos/zdemo_excel24.prog.abap | 18 +- src/demos/zdemo_excel24.w3mi.data.xlsx | Bin 0 -> 9027 bytes src/demos/zdemo_excel24.w3mi.xml | 28 + src/demos/zdemo_excel27.w3mi.data.xlsx | Bin 0 -> 6755 bytes src/demos/zdemo_excel27.w3mi.xml | 28 + src/demos/zdemo_excel3.prog.abap | 59 +- src/demos/zdemo_excel3.w3mi.data.xlsx | Bin 0 -> 9337 bytes src/demos/zdemo_excel3.w3mi.xml | 28 + src/demos/zdemo_excel30.w3mi.data.xlsx | Bin 0 -> 6197 bytes src/demos/zdemo_excel30.w3mi.xml | 29 + src/demos/zdemo_excel31.w3mi.data.xlsx | Bin 0 -> 10113 bytes src/demos/zdemo_excel31.w3mi.xml | 29 + src/demos/zdemo_excel33.prog.abap | 33 +- src/demos/zdemo_excel33.w3mi.data.xlsx | Bin 0 -> 6248 bytes src/demos/zdemo_excel33.w3mi.xml | 29 + src/demos/zdemo_excel34.w3mi.data.xlsx | Bin 0 -> 6943 bytes src/demos/zdemo_excel34.w3mi.xml | 29 + src/demos/zdemo_excel35.w3mi.data.xlsx | Bin 0 -> 6354 bytes src/demos/zdemo_excel35.w3mi.xml | 28 + src/demos/zdemo_excel36.w3mi.data.xlsx | Bin 0 -> 8367 bytes src/demos/zdemo_excel36.w3mi.xml | 28 + src/demos/zdemo_excel38.w3mi.data.xlsx | Bin 0 -> 7963 bytes src/demos/zdemo_excel38.w3mi.xml | 28 + src/demos/zdemo_excel39.w3mi.data.xlsx | Bin 0 -> 18022 bytes src/demos/zdemo_excel39.w3mi.xml | 28 + src/demos/zdemo_excel4.w3mi.data.xlsx | Bin 0 -> 9152 bytes src/demos/zdemo_excel4.w3mi.xml | 28 + src/demos/zdemo_excel40.w3mi.data.xlsx | Bin 0 -> 11164 bytes src/demos/zdemo_excel40.w3mi.xml | 28 + src/demos/zdemo_excel5.w3mi.data.xlsx | Bin 0 -> 5867 bytes src/demos/zdemo_excel5.w3mi.xml | 28 + src/demos/zdemo_excel6.w3mi.data.xlsx | Bin 0 -> 5855 bytes src/demos/zdemo_excel6.w3mi.xml | 28 + src/demos/zdemo_excel7.w3mi.data.xlsx | Bin 0 -> 6797 bytes src/demos/zdemo_excel7.w3mi.xml | 28 + src/demos/zdemo_excel8.w3mi.data.xlsx | Bin 0 -> 5932 bytes src/demos/zdemo_excel8.w3mi.xml | 28 + src/demos/zdemo_excel9.w3mi.data.xlsx | Bin 0 -> 7915 bytes src/demos/zdemo_excel9.w3mi.xml | 28 + src/demos/zdemo_excel_checker.prog.abap | 1384 +++++++++++++++++ src/demos/zdemo_excel_checker.prog.xml | 22 + src/demos/zdemo_excel_comments.prog.abap | 14 - src/demos/zdemo_excel_comments.w3mi.data.xlsx | Bin 0 -> 8911 bytes src/demos/zdemo_excel_comments.w3mi.xml | 28 + src/demos/ztest_excel_image_header.prog.abap | 3 +- .../ztest_excel_image_header.w3mi.data.xlsx | Bin 0 -> 15698 bytes src/demos/ztest_excel_image_header.w3mi.xml | 28 + src/zexcel_tr_docprops_core.xslt.source.xml | 19 + src/zexcel_tr_docprops_core.xslt.xml | 12 + 99 files changed, 2856 insertions(+), 37 deletions(-) create mode 100644 src/demos/zdemo_excel1.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel1.w3mi.xml create mode 100644 src/demos/zdemo_excel10.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel10.w3mi.xml create mode 100644 src/demos/zdemo_excel12.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel12.w3mi.xml create mode 100644 src/demos/zdemo_excel13.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel13.w3mi.xml create mode 100644 src/demos/zdemo_excel14.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel14.w3mi.xml create mode 100644 src/demos/zdemo_excel15_01.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_01.w3mi.xml create mode 100644 src/demos/zdemo_excel15_02.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_02.w3mi.xml create mode 100644 src/demos/zdemo_excel15_03.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_03.w3mi.xml create mode 100644 src/demos/zdemo_excel15_04.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_04.w3mi.xml create mode 100644 src/demos/zdemo_excel15_05.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_05.w3mi.xml create mode 100644 src/demos/zdemo_excel15_07.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_07.w3mi.xml create mode 100644 src/demos/zdemo_excel15_08.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_08.w3mi.xml create mode 100644 src/demos/zdemo_excel15_13.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_13.w3mi.xml create mode 100644 src/demos/zdemo_excel15_24.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_24.w3mi.xml create mode 100644 src/demos/zdemo_excel15_31.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel15_31.w3mi.xml create mode 100644 src/demos/zdemo_excel16.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel16.w3mi.xml create mode 100644 src/demos/zdemo_excel17.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel17.w3mi.xml create mode 100644 src/demos/zdemo_excel18.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel18.w3mi.xml create mode 100644 src/demos/zdemo_excel19.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel19.w3mi.xml create mode 100644 src/demos/zdemo_excel2.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel2.w3mi.xml create mode 100644 src/demos/zdemo_excel21.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel21.w3mi.xml create mode 100644 src/demos/zdemo_excel22.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel22.w3mi.xml create mode 100644 src/demos/zdemo_excel23.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel23.w3mi.xml create mode 100644 src/demos/zdemo_excel24.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel24.w3mi.xml create mode 100644 src/demos/zdemo_excel27.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel27.w3mi.xml create mode 100644 src/demos/zdemo_excel3.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel3.w3mi.xml create mode 100644 src/demos/zdemo_excel30.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel30.w3mi.xml create mode 100644 src/demos/zdemo_excel31.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel31.w3mi.xml create mode 100644 src/demos/zdemo_excel33.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel33.w3mi.xml create mode 100644 src/demos/zdemo_excel34.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel34.w3mi.xml create mode 100644 src/demos/zdemo_excel35.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel35.w3mi.xml create mode 100644 src/demos/zdemo_excel36.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel36.w3mi.xml create mode 100644 src/demos/zdemo_excel38.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel38.w3mi.xml create mode 100644 src/demos/zdemo_excel39.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel39.w3mi.xml create mode 100644 src/demos/zdemo_excel4.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel4.w3mi.xml create mode 100644 src/demos/zdemo_excel40.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel40.w3mi.xml create mode 100644 src/demos/zdemo_excel5.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel5.w3mi.xml create mode 100644 src/demos/zdemo_excel6.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel6.w3mi.xml create mode 100644 src/demos/zdemo_excel7.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel7.w3mi.xml create mode 100644 src/demos/zdemo_excel8.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel8.w3mi.xml create mode 100644 src/demos/zdemo_excel9.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel9.w3mi.xml create mode 100644 src/demos/zdemo_excel_checker.prog.abap create mode 100644 src/demos/zdemo_excel_checker.prog.xml create mode 100644 src/demos/zdemo_excel_comments.w3mi.data.xlsx create mode 100644 src/demos/zdemo_excel_comments.w3mi.xml create mode 100644 src/demos/ztest_excel_image_header.w3mi.data.xlsx create mode 100644 src/demos/ztest_excel_image_header.w3mi.xml create mode 100644 src/zexcel_tr_docprops_core.xslt.source.xml create mode 100644 src/zexcel_tr_docprops_core.xslt.xml diff --git a/src/demos/zdemo_excel.prog.abap b/src/demos/zdemo_excel.prog.abap index 95ca527..ba60d41 100644 --- a/src/demos/zdemo_excel.prog.abap +++ b/src/demos/zdemo_excel.prog.abap @@ -14,6 +14,7 @@ DATA: lv_workdir TYPE string, PARAMETERS: p_path TYPE zexcel_export_dir. +PARAMETERS: p_checkr NO-DISPLAY TYPE abap_bool. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. lv_workdir = p_path. @@ -37,7 +38,7 @@ START-OF-SELECTION. SUBMIT zdemo_excel1 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Hello world SUBMIT zdemo_excel2 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Styles - SUBMIT zdemo_excel3 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: iTab binding + SUBMIT zdemo_excel3 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path WITH p_checkr = p_checkr AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: iTab binding SUBMIT zdemo_excel4 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Multi sheets, page setup and sheet properties SUBMIT zdemo_excel5 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Conditional formatting SUBMIT zdemo_excel6 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Formulas diff --git a/src/demos/zdemo_excel1.prog.abap b/src/demos/zdemo_excel1.prog.abap index babc0e4..4806939 100644 --- a/src/demos/zdemo_excel1.prog.abap +++ b/src/demos/zdemo_excel1.prog.abap @@ -12,7 +12,9 @@ REPORT zdemo_excel1. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, - lo_column TYPE REF TO zcl_excel_column. + lo_column TYPE REF TO zcl_excel_column, + lv_date TYPE d, + lv_time TYPE t. CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'. INCLUDE zdemo_excel_outputopt_incl. @@ -25,8 +27,10 @@ START-OF-SELECTION. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). + lv_date = '20211231'. + lv_time = '055817'. + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = lv_date ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = lv_time ). lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://abap2xlsx.github.io/abap2xlsx' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ). diff --git a/src/demos/zdemo_excel1.w3mi.data.xlsx b/src/demos/zdemo_excel1.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b145e755460a9a5992f9a401c190fc5711a78a85 GIT binary patch literal 6388 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

nrS6stA{os=Uf=Nl zX4Tcr+Y#*gYaJqz2kk%e0((v6H&JqGX75+e3^AHvRm0Shx%$5J$vP07+1 zm5n541t^|)V%%4mRA4o%Hb|Z%^YKMmF zM;0UjrFh%U5@CR_xR~=*knKKnmjMsvHf2Xp?=F56O!DCeqas)8fd?j%-D=K(LI-@9 zw!96#mrHdn%7AK8z*b8Fziy!wY1S(peFdX0$B^tW)368TL+flv1$uqClKKU z)|akOn&;=J6`sCB-{(DLR)c;BPt}NYIMF9*ktw+aEUTUrln2r3iJ+BJ#p--tq$-sO zdL7X%wX1RO2Pwu)O_PNhEr`Uo?fbWm5bl;Vy%7txr*ml6si`y6yVq~at+sWpP33H$ zawHOX_5@k@60KF0S4~Qw@?H($j>$u)7k;|U4Q79;1SHH|@Vz$cGL&P>5=)2LnO_Ng z?88GgtJ-m}%ps{)@Nk`vT0w|56b`7?S9xpdG;-jOyxF|XQ^et@GCg?My^E>wr#FaTev zxWa-|Yt0O9x@KL9YUk%=Ve}sdI^8oQA%#stO0b zcVcnlx&y6AozvtoAA`L{$Vb;oHY+JNzhoFfCbCOgB8MQ&7@<`cFtm*bjVb zip||lh7~!1(?w-VZ!W9&HB}4>T2pD=EmPkgnq4Z57yX{op!_*HIVa?G`&GR2`>%N3 z3=4&8+_){=OxSpgz|Y-GP~JITED0sF2ifvulTtb$JtzK23{$kb#AOpTK{1j3aq2Qb zMD?`KbxHeZPmZp96Hj_Fws@}+{b(ii1CDuVUkOLQ>GL>wbdk0PMomlU8{ak4VW00_ za&wsLyP}BSQ-i69&1T=_J%mL{zVWjCX-v|ae?#*$GwpiHl=tCbOQe5tdZKX>O`0@J zMIz10DiLZuGU(3d<$JuZd$YM#?)upG;zFe$Ld{2vN6jZo7uPwzabx?(O-YtN^#^Rg`r^pbZ{D>cg{-F^^}=B2N~y@23hiMTudGWOwNY^XS`Z_;as{>( zGcRWhNv%cR2C(ZqebgGpKxJSOC2P#J3l&oeR#}GWlv&x7`)V6 z4HFNY;(GeL)Y*Kd^^r|6&DKf|Z}rp{cYj;cpCLkLM6?Y0DmxCkq65@5umr&k!v`+{ z3KzUuYywV> zioOk77sIR2xiyr@y3V8G24gU1fkIl)_2YWNY+%6$`I!ON--W z2G!nGUTPb2i)&5Kya`H<8rPW5Fy?}dkKbcDO@b(tgautS`NiHokF)0rhiuP)Xy+&L z6lzi|h22;3R2{bqk)PoiRH3RRudfxb(3v1zeiB{4IlS{e`z`8EQ(yl!Y7VH0;YTacK9x8LFJ zK~%%ypwx=0PqB@*SKylvi}}XDx^7_>p}bVOZdN&5Ov-_nP3|ucxR)gzW0s(j3Q39ke1BGg;C8!E{{z?*VJ8bsj2nXDTndzCU{My`^e(D5HXz_ zQOX*qyQHzvR=j=AWSp{|q}qxvlD;h}5MSDfJ>e90OfMFbySMe|ct^(MS`V(0npovG zbT2=0EqZ;|BD`Xb2HI`aU1DtBskYyAC5U&P_*&(jw_EnS0sZyJFYgWI4#{5|4TdlbKM-edfQbK9}F4RBi}{|2zb`wQTon)!C{Z87*exD}}l ze@TS@O2gZsxAnyD&^n}8|2K7U8{zi;`Hj$rGz^glzyA6EY@^#Kw;S;{3I^G2lz(kY Wb!BuU)4yDFT)-%@aPY~0eftkLfG*Vl literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel1.w3mi.xml b/src/demos/zdemo_excel1.w3mi.xml new file mode 100644 index 0000000..33c60b8 --- /dev/null +++ b/src/demos/zdemo_excel1.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL1 + 01_HelloWorld.xlsx (ZDEMO_EXCEL1) + + + MI + ZDEMO_EXCEL1 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL1 + filename + + + MI + ZDEMO_EXCEL1 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel10.prog.abap b/src/demos/zdemo_excel10.prog.abap index fd26907..6393f2b 100644 --- a/src/demos/zdemo_excel10.prog.abap +++ b/src/demos/zdemo_excel10.prog.abap @@ -8,6 +8,8 @@ REPORT zdemo_excel10. +TYPES: ty_sflight_lines TYPE TABLE OF sflight. + DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_cond TYPE REF TO zcl_excel_style_cond, @@ -51,8 +53,8 @@ START-OF-SELECTION. lo_style_cond->mode_iconset = ls_iconset. lo_style_cond->priority = 1. - DATA lt_test TYPE TABLE OF sflight. - SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + DATA lt_test TYPE ty_sflight_lines. + PERFORM load_fixed_data CHANGING lt_test. lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_test ). @@ -93,3 +95,50 @@ START-OF-SELECTION. *** Create output lcl_output=>output( lo_excel ). + + +FORM load_fixed_data CHANGING ct_test TYPE ty_sflight_lines. + DATA: lt_lines TYPE TABLE OF string, + lv_line TYPE string, + lt_fields TYPE TABLE OF string, + lv_comp TYPE i, + lv_field TYPE string, + ls_test TYPE sflight. + FIELD-SYMBOLS: TYPE simple. + + APPEND 'AA 0017 20171219 422 USD 747-400 385 371 191334 31 28 21 21' TO lt_lines. + APPEND 'AA 0017 20180309 422 USD 747-400 385 365 189984 31 29 21 20' TO lt_lines. + APPEND 'AA 0017 20180528 422 USD 747-400 385 374 193482 31 30 21 20' TO lt_lines. + APPEND 'AA 0017 20180816 422 USD 747-400 385 372 193127 31 30 21 20' TO lt_lines. + APPEND 'AA 0017 20181104 422 USD 747-400 385 44 23908 31 4 21 3' TO lt_lines. + APPEND 'AA 0017 20190123 422 USD 747-400 385 40 20347 31 3 21 2' TO lt_lines. + APPEND 'AZ 0555 20171219 185 EUR 737-800 140 133 32143 12 12 10 10' TO lt_lines. + APPEND 'AZ 0555 20180309 185 EUR 737-800 140 137 32595 12 12 10 10' TO lt_lines. + APPEND 'AZ 0555 20180528 185 EUR 737-800 140 134 31899 12 11 10 10' TO lt_lines. + APPEND 'AZ 0555 20180816 185 EUR 737-800 140 128 29775 12 10 10 9' TO lt_lines. + APPEND 'AZ 0555 20181104 185 EUR 737-800 140 0 0 12 0 10 0' TO lt_lines. + APPEND 'AZ 0555 20190123 185 EUR 737-800 140 23 5392 12 1 10 2' TO lt_lines. + APPEND 'AZ 0789 20171219 1030 EUR 767-200 260 250 307176 21 20 11 11' TO lt_lines. + APPEND 'AZ 0789 20180309 1030 EUR 767-200 260 252 306054 21 20 11 10' TO lt_lines. + APPEND 'AZ 0789 20180528 1030 EUR 767-200 260 252 307063 21 20 11 10' TO lt_lines. + APPEND 'AZ 0789 20180816 1030 EUR 767-200 260 249 300739 21 19 11 10' TO lt_lines. + APPEND 'AZ 0789 20181104 1030 EUR 767-200 260 104 127647 21 8 11 5' TO lt_lines. + APPEND 'AZ 0789 20190123 1030 EUR 767-200 260 18 22268 21 1 11 1' TO lt_lines. + APPEND 'DL 0106 20171217 611 USD A380-800 475 458 324379 30 29 20 20' TO lt_lines. + APPEND 'DL 0106 20180307 611 USD A380-800 475 458 324330 30 30 20 20' TO lt_lines. + APPEND 'DL 0106 20180526 611 USD A380-800 475 459 328149 30 29 20 20' TO lt_lines. + APPEND 'DL 0106 20180814 611 USD A380-800 475 462 326805 30 30 20 18' TO lt_lines. + APPEND 'DL 0106 20181102 611 USD A380-800 475 167 115554 30 10 20 6' TO lt_lines. + APPEND 'DL 0106 20190121 611 USD A380-800 475 11 9073 30 1 20 1' TO lt_lines. + LOOP AT lt_lines INTO lv_line. + CONDENSE lv_line. + SPLIT lv_line AT space INTO TABLE lt_fields. + lv_comp = 2. + LOOP AT lt_fields INTO lv_field. + ASSIGN COMPONENT lv_comp OF STRUCTURE ls_test TO . + = lv_field. + lv_comp = lv_comp + 1. + ENDLOOP. + APPEND ls_test TO ct_test. + ENDLOOP. +ENDFORM. diff --git a/src/demos/zdemo_excel10.w3mi.data.xlsx b/src/demos/zdemo_excel10.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..028cc349c4b46d18e086d939b6faf3bf36579bc4 GIT binary patch literal 6942 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel10.w3mi.xml b/src/demos/zdemo_excel10.w3mi.xml new file mode 100644 index 0000000..5fd38b7 --- /dev/null +++ b/src/demos/zdemo_excel10.w3mi.xml @@ -0,0 +1,29 @@ + + + + + ZDEMO_EXCEL10 + 10_iTabFieldCatalog.xlsx (ZDEMO_EXCEL10) + + + MI + ZDEMO_EXCEL10 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL10 + filename + 10_iTabFieldCatalog.xlsx + + + MI + ZDEMO_EXCEL10 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel12.w3mi.data.xlsx b/src/demos/zdemo_excel12.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a2c26fc9f04e3452e7e35dfaf924d5e05a1601f5 GIT binary patch literal 6214 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 F{{T&D=)V8} literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel12.w3mi.xml b/src/demos/zdemo_excel12.w3mi.xml new file mode 100644 index 0000000..a33c067 --- /dev/null +++ b/src/demos/zdemo_excel12.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL12 + 12_HideSizeOutlineRowsAndColumns.xlsx (ZDEMO_EXCEL12) + + + MI + ZDEMO_EXCEL12 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL12 + filename + + + MI + ZDEMO_EXCEL12 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel13.w3mi.data.xlsx b/src/demos/zdemo_excel13.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..064db297fffa7f1f69e40714fcd8872766231d67 GIT binary patch literal 6225 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 H*VF$1Ct}(j literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel13.w3mi.xml b/src/demos/zdemo_excel13.w3mi.xml new file mode 100644 index 0000000..f7f3eb9 --- /dev/null +++ b/src/demos/zdemo_excel13.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL13 + 13_MergedCells.xlsx (ZDEMO_EXCEL13) + + + MI + ZDEMO_EXCEL13 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL13 + filename + + + MI + ZDEMO_EXCEL13 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel14.w3mi.data.xlsx b/src/demos/zdemo_excel14.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fff2f736b1bcea678d51628b9549702d8b696853 GIT binary patch literal 6156 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 xe}t2UVEFas|5NYpvfTY + + + + ZDEMO_EXCEL14 + 14_Alignment.xlsx (ZDEMO_EXCEL14) + + + MI + ZDEMO_EXCEL14 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL14 + filename + + + MI + ZDEMO_EXCEL14 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_01.w3mi.data.xlsx b/src/demos/zdemo_excel15_01.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2332ea97eeea9981ebb5da8123c6d65d0c1e9d6a GIT binary patch literal 6314 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 AiU0rr literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel15_01.w3mi.xml b/src/demos/zdemo_excel15_01.w3mi.xml new file mode 100644 index 0000000..40e8248 --- /dev/null +++ b/src/demos/zdemo_excel15_01.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL15_01 + 15_01_HelloWorldFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_01 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_01 + filename + + + MI + ZDEMO_EXCEL15_01 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_02.w3mi.data.xlsx b/src/demos/zdemo_excel15_02.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..dae1e6b44cd8675067bd084e7e554e3c480b74b8 GIT binary patch literal 6532 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%0D88Fc;|M-SeBVj(x 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 + + + + ZDEMO_EXCEL15_02 + 15_02_StylesFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_02 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_02 + filename + + + MI + ZDEMO_EXCEL15_02 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_03.w3mi.data.xlsx b/src/demos/zdemo_excel15_03.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2d8f791828a48e9a985f37bf4aa5d0415f4c90aa GIT binary patch literal 12659 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

_rT7U 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 + + + + ZDEMO_EXCEL15_03 + 15_03_iTabFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_03 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_03 + filename + + + MI + ZDEMO_EXCEL15_03 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_04.w3mi.data.xlsx b/src/demos/zdemo_excel15_04.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c589a7f5d06f847f25a1d6c5ebf390666ab024bf GIT binary patch literal 8923 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 Ni-+YeE5)zB{tFVrR)+up literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel15_04.w3mi.xml b/src/demos/zdemo_excel15_04.w3mi.xml new file mode 100644 index 0000000..95e46c1 --- /dev/null +++ b/src/demos/zdemo_excel15_04.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL15_04 + 15_04_SheetsFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_04 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_04 + filename + + + MI + ZDEMO_EXCEL15_04 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_05.w3mi.data.xlsx b/src/demos/zdemo_excel15_05.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..befd4f7266be3e6b5c131f47b1649d3999895f34 GIT binary patch literal 5793 zcmZ`-2Q<}x+`d-!CMB5{Ss^>BYg{|7y-7_ZE7$fhxEwo11i?(Vf& zZS3!S#^Fkk9>fmv%l1svdT@TeIHqxTYAW>c$~a6--71i!NOsD=NRey`LCUOT7nr-= z*_Lu&p$9mMR@Up?(zoa3MF#w!8dA$8E4q|CA&RDskm`j%_m3s&i86=WW3N$)F>9cL zg6CE(1!AS0h$&j*xo zUUPB%idyPKA-oD@W>YVj*~;Zon?i(|MBhnmGa~P`Gi-?lD;q-|F(CR9u820=NPaPv zxwGz=ojWmiVs!4*T6nUNJ$um^vE686_ zNFz;2pT(+w2NwV!#eSh~Fb8+Rn?K*B3HLSdgvo--X{U?xi+ zFop>aT~#roY#M+9327JATi6~S9#$>H*6#N?Q6ze^b>nq)mKBdPCepv|3g-~pQ^2g( zq$#CBB7ytzJ^4HBU&hSECh@FBb(&3Ga}0R})Ib8+@VLR~F>2(>5ygCMsF_b{pfi%` zq*Sa+C&&K%TSr2rC!PZVIhj{+MESs)XIv`F4A*;Zehd2)FFsQB0GZJK-T7{^<=%qlc znn!qV(&OJksQ9*geUYT_Im~^S(}A91cC16?Yn#57LtE-`ju2zM`9{r57$tfqrY*C1 zA#PgNj8&Q|#_q`3X5FJLv}7SW!dqKLH%ZJ`>xBEz0lv9Js>;02h@3gi4wEGvd}p!5 zs?%~@YG?zqqzQy&^FNz;B-;yG=qz3A!GE5UuSK5ft32r2o=0x)>#lU5xGlhr{THPRxK9s{ZgxuRDZaAE zK<*I51HoGJGU#VXNg>qZf$|THT@tr@T3humAyZ~@AO&XqeMF885>lNp&a%QO_;R5x zW=0*plH=s!QB76kGyM0RQMd#6+hh{0V{k>dF3A*6U#Ngdz|0j@NLE7|knNz?2i0RH zV3WvPlskQ`E+VrvW=aYZ;9`Jy`4R=n&e7osxGe!5~k#OeOjocL`r>-wJG^fXG+X=ad6fsSi{azlo* zJn*>t2hI?GpR#(T7bqF{Q6!q}bN|dyhS)}We_

    2IOMadN7DR)P|& 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 tH!Q<{mj8<^7jxzh3lY{z{+s1LGYFzafK~dZ + + + + ZDEMO_EXCEL15_05 + 15_05_ConditionalFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_05 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_05 + filename + + + MI + ZDEMO_EXCEL15_05 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_07.w3mi.data.xlsx b/src/demos/zdemo_excel15_07.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ede2a73ceddb54b29d1e5a4e44c001aec2cc07b9 GIT binary patch literal 6722 zcmZ{J1yodB|1~MyrAP=2U4yhB4xQ57AVc>6k^%yQG)PJ}(g+eFjex|EN=gn$clUqv zS>Nj;@B7VK_ntL(-M!ac`*-g7?X$0{A}Sgw5)u+7Qm$>5M&V?EsunU5(h?dH5((m} zfuxh88`#m!MAOR|3^C&Jbg(Z^P*m;&;X*5kVdVT{)uw^d)!Ftr#D;Aa>6YJm2duYR z2D@J~xS*#8(}VnSJmS^NZ*Ny8mBr@fLSJr9gB6u5f@q7y=XCUBaOVPWXk=}J@^`vB zlb=iV0Vc-ev&oaQJd`ztQ(fKa;Pjel?DinLpM`IZzmTMr8Y8%&tg}GHlj8mbT(Z=tJ$4hdDv4 zCp>mgMokG5$|hA|H202%u2Lek6$)(S`z(A&S@!G;#Xet%oW80RMF8yWeZFRvq?F0b zqaBBw{2BO_-mPOt{q2W!o!DVf$lLO!GvccwF&lDexwBjPx_SS+IUeNMo2u?C)xWBc zhLfDWgi!w}3K9|yVl;6D+e5gyex1wTK37KN!40V-1`m1a1IXWxIX152=NPvEGHGFe zXe!jPnhy(dhJjTepn7qmsm6 zRE|#T2<1ld=!M7|2M!Aw&^}%ak#Led<2yvFgwbS;Wl%2{xusj-ikYR012fliM>qHvrBL+47F6lq)X|=*Qec?zI05+ zS-r{D+02#QAlpDAl2|X%gI%4Udp)?kJXHL#TQ5*dm%Z;eP%Yl~7ES(>q28|P0Di!h zak$qW8QS9jdEfTMltiiTZy?_o?aA<$CcESpJGIs9J5w)nfs}>DyLAh12*!@0J2Tr> zV&^rD9*HnT+g>?0DH zj(%=1gU$L?kXAq!g%Eo#%wg*E#16tSm<6Fdi-S_ITV^HPyQ5CXwo0rMCx(RF`nu*!%I+8CO5@<7L%muD?UsWk9bNe^sQ2`TG2Vt6M}%Cd)LV z>2B>6($IsUM(qeJ^%S@J@zYLU?(4AY@mP`EqVNt`DcO(N9U zNUzIRXc|u-vb6?pf#bPT70M9WA+BJ@q??SJCiWaFER@qAaN)j!YIbucfbML-yQk7}IDh_OLwIIK^qlZipt}+Cakg~l6{8e^Yc|gjtj#WQlv~n1iPY) zl|h%i2goBFFgc}aPf!w|pZ9H1XMN$V^tImm=;t>MqFB}dnQy`$i)8;)U{0+Y+PFLjpC ztn?^!*(GdT%>>O7HgY{Zr!BADvG`~6&&Fr!U4YzjKZ@3}*%W}#uAXiJ*4!Yh2X$%3 zsQAW5SfOGyBN<=uU(2=BCv67gtY5`{V~ z$PQG|=)UzVs@t~vQE=h)g@uB?Y>lfVrwG5RJw_D2R07s!Y}ugqHV{ntv4iA`nn^@u zQl$TLw}k)}f3%{w4nJC*&kaT&BNnjIWOKwk4i$dFP44@gzy(bHRt6t}X)1+|gyjC< zpH78P#?2b+0RHF9^Gla)Jp-p10n!`x;5nUMiYXV>A~|21dM1ZB3+f9`juB$Ja8kJ^ z#q-b;m$m@2*{Wn@pPA08auCi|!6pCH6MO36R-l5beP5xs-fT{rIcl`rtJOWYa40R~ z%0Z$JmNc`jT!-F7vC#oluwI*FM{WhL7M!4t3P4sx$YRy7IZ)+Rv1JH#AcLbZIKY+# z+%j~F-Dcdu*`LLYmsl;m?FXb$6a=N0p(x6=6Tyw{Lw29A2!B4h7v{0SL52VR#!SJI z8ktO1Tud>rQJ5wkX?4LiFMz(8T^h41CAXgF;4A zYm(BV^NP1V?O|}dw)aVus)_F?>2&XWe+!$@SwEsRXt-j#YCmx{i2c=IP7 zmoN{ktRQoRNejH~^KzM8-&&lnDPwlpo;^ zW_buFiR85O^F=9~LaxGmk1nLj!xJcI333pvFgIRu;mdo`R>xwPF~`a9f=BBMHmL@Q zC#JJ`r%{lrZkGRT*Zlme@Eh-|*~3tisr`bro0~DK*6WJ`>i0?uHI=m2`^zIWPGYx* zp`ijoG+~15Z(`icQpve9Z_bw1UmPv1=ha-Q4DQ^zo-DLaU1xDZC*b*f-;r0{VsJJA z6E&2)HqYHlI2-&HetbDT&!>=lJ6(n0hA<7Ak4WF?#xlW3My@vbPK( zf)e+M%szx&sVcisA6d&j1!~1k zCcUJR^je*j@ppei8dIn7_$ho%%+lV1-u7Wphq(`4}TW0F3rmm7B zN!eUk+b*HRR{RgTeiUb&Z=!TtiK8v_8#f}v$4261)t+=Kx9qHyY(Y_2p0tHq5YoOi7z*q$<{0&^Sg4HbWW_9nz(}4dyUpVAm%k zv~YTSW!Wy5OruI=>BY7+RP%XXNe8{AX{!`*&8^E%<}N9OU-I{QigpKn?tIa*?!9 z)?So)q(+sQOOz2VIUIN}Q_B%R7iUWZi^a@qNLDk9D?QidXy!9;RLi!(JtXNOJw(Yg z;axkD|87K4s{P7{9&|<4Ppeu)$4baw z9t_H*(8MZ!n&vsCd#qTeIPC;)W8TLpBato;R2Jbq864ahnmBd!8xQw=O)#38I%xHP z5g_G=rZWzD&P}-HUAtBO?3Jz$;A}QH)q|%o{KK$YwpWTC#yu1LP5v0U>p=9?z=&aF zsdC*+FiznoJ~y}bSN@{*Gky0m9U!BoOV&%``)|x7nT@hb!R%yP-B-aPr``O8V(bc} z1pCroF>?#i)n_`R7F2fD0b2Cny6mmS<#7giQ|253ou_K9bBYZ1G4*}>+Q|>c2`sp! zw^Y3bcKYOf(7o2opVNltD&mxlQkMV3PSrN+o9Z}?OJ0Th9 zgl{1VPxPyzKeZH}EmlRC1Vjx#E_jNq8l{1}6|4!+D z*qH&1RA{+wKS3CEXG4b|Ngh7RKHH0)_e$@ym8;9oZX^No-$H0cnmQ*%cvic5`~gwW zBf;_7j~&}oB$~;OMDksWE;OpFLpjih%9)C^a_eP4*3QMcRJl(T0*b26XlLkGKE-o_sr((2_iZ+f?MlC~&Gk8aT`N<&JMv07s^9FM-3%AB@ZJG z=EQ4fXib@%T->~K+INCM^EKFPw}I=!7&GH7$ivtjp(re6N6z7nm8(w!H*W`S=HIvv}#Nb}Khd>Uc*s+f_G?*CbNAl6{88w8;yV)*U(R#InOHv|ZKOuFEg z_w1|MX(Uzy>`j@r)0wOWn}H~zA2`__5?|OhuQ42xu}wi==#}!}DHWy90nX~}wr_Ms zFJ4@&?)pc*@_kMM2kFv`ZOwh$X)H8bMjzA`%6affFa{v#PZeX#;xkwuOnUEh=)ebJ zKq}HY)|V&m7+?G&=*l^GO(4nbcC9hz_2dc>9Gq?Ndjddejk^>IlieAYsjFY)Bk5_{xW9eMm z9=o_veil`Qs=(ijq*p|Uh#6+QFPYl(q!t_X)T|z|7tOt-592*}_uyP?1&f*)ki*?{ z^bHuj^UDE6bA>bO)0XaKMyD$Q>?U7&tT60qww{}) z(IeIliS+N=0@42D$MVxhymPS_zRSJgBh%x|L^3=P{MGqKdfDhPeQGTQ+`QzKG!08l zqhEU&{N9aP46=7kWMqr(Ki0{?KlI0V%!oC#9xt>wp}t!rBPw3DN@}-L{h3xLqI9J6SSoJgR5m)Cl`2EX$TM8AIbhQb=7mlRBPLjd{sRh{*)k(MCZx;%1!Gu4ETm>4l=o0gzN#m8yj*+9k zK!YQ7(?wbVGdn$VOyv_W!VgNeXa4&-y1-ai+bT^SAMTWGEnnZbHUpl8T`78Kb!}zu z6ckd&Kh;5Hmp~xpBn@<0$aC9i!#zI+-DvrXu~*z(N9JC$F?4)FeECf zZE@WXdEq=^Eu{X53Vp}54t*B|PnIn?ug$NwZc(dzQEtVRv|(uSsb`|??_1__Q2Y&q zJ3Yz@wXj$+O2V*rK{Fu}=}?BmezgT3E}v{Y2=F)la-7C?oN6GhZ-r%#tM(}@HAq1+j0=i{p%%wJfdMO>Y_ zuM(KmQ@W$O61uuRc(+u3P`h2F7vrJftTe{-?dr|cj2^iFZRU6cO9SAN)O+U-jI6eg z=lDK5o=fS=QrPyVcM-@f&SPdhxj9l_MCN=#7e9|BLCx9H6k7iEU( z;(l*p;&%^`oPaO~{E!Exq_->xg*I22ICrhhYn5d!oodtL2K83?*P?9iL9c?RmKeRl~{Mj|J_opaMDX$5PiTOaWMQ>Klmpj`O_7CCnV1!+wnSpxY9adq9AIaqkvQo41p^B zF-?FnsR5=XyiKkQ6iwAS=W}~`qtwsKe7aC58;4ZX9t5!kJS?E6TIj;=7c~-&bC-sz zeLt4r1M!toNEtC$jpk@3DLWQ`tHoxb6URliBdvC2?QdxV4hd8hkx@u~H~jw{t|K1% zU%&qmwcjPUn+yLzLlN%cUn%ij;N2AU4=@f9EZxmi@1pOfeSgr*h|dK7LI1z(?=Jjq zhV=&?i)iTo|3vF9&)vl54^PRx-#mBopSuKicQ1bkXmNiN{Ch8R7kt;G{{g!rJo_(4 z_aDoC7kbzJ{efyDHc|h}4Bln9>wf+)yhDWI2!>xz{$F0`F3a6_<_}9T`CXR(`39*f Vq9c_4^-Tf?X#_EG3@Cp6`#)w&?V11p literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel15_07.w3mi.xml b/src/demos/zdemo_excel15_07.w3mi.xml new file mode 100644 index 0000000..a8491e5 --- /dev/null +++ b/src/demos/zdemo_excel15_07.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL15_07 + 15_07_ConditionalAllFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_07 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_07 + filename + + + MI + ZDEMO_EXCEL15_07 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_08.w3mi.data.xlsx b/src/demos/zdemo_excel15_08.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..23f4e0771f191a388852af16915af698871066c2 GIT binary patch literal 5828 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

    Y+ zR`U*fvImTygjql;G+3j)W7eLUwuaOZdRW@vJ_#L`a1*%`%5>=C%0`2K-G0l)FEJOJ z6TPBn_Zxfia_?fYE7v(+pzb8+d$u@=wyc>)eRjhS(@j0wzCA`eO z5(NoGcLC#VlR}nQ*Ve?#z3Q(x=veSKIZ`x6RfWGyIkXGoAaLLk>K<{aFGg}Y?kpjs zWlU8KJ=zrBw&Zc_cSMgg&rOI>1v`yedOJD2S;k})-w=xoC>q~7N}%Z8t>evlZgHTc z2OUi}mlUGP-WEm~+4fJtAc}&>Jk^GWA=N$k1`jcSg$_Q-d4{7Hs)DlVr_Rkqh~rT12L;l2KIqsJiJuhR%aa_a_F%67~OyLjZ-Y>Kg=Z6q*0^wN2z3Qnz^&G7_hW^_0s`~|fqf{1rr z@zpQZy<&^04lffA^-?$=YH3`{j=MF45rBBgAeha#-drCt5f2TWiBNr%Z#7iW*UadOftcq` zAMClFEoJ*~zSCFou&MB|**3#hx2O4)${axa6DiFN_Hz9vJsbtRLDnr(N}1$L)?u4C|VBe{nl{-^;R_a^}YTtAqOH z+7wxA8j+LU?cZxLNMaOSBLlb9k!_YsRDEx2R2cYK5};8_|iq&ly+~Cb!oW?sO+Ijq2J% z>@yo!D<%-RqHUu-b)F#-972{ti!%B@ zcuVqUl$pAq-XjWsqmC=P4#tP|TsCL}o4_jVs-D&E+>ba@?Bx>E+GC_3=Js4zDzw&piRs>>T6|BvYc-BF8gb;A-x)qg0gXvsL_!BZ4 zR=n@7ev2G|zS45%l}X7o0=szbM5=F#V=5n$O^WlwdOI?-@-Hu@`bSiDq7C>hw z>YKpP-XedmXIt8IS}J&n`S)Ek$4xG9KxU*D^2_*tGV}M6_9s7ot!S^_HQ_gNa4`7K+yW9WF#Q3$rob9bTd&s~2ug`y&eK!eiI#Ykp0mzc{FQ4ir@TQOR2N;RG-8WsGo9LTHPvNa!JU186n*=w + + + + ZDEMO_EXCEL15_08 + 15_08_RangeFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_08 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_08 + filename + + + MI + ZDEMO_EXCEL15_08 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_13.w3mi.data.xlsx b/src/demos/zdemo_excel15_13.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3c38c257fcd0051366c29144c05c9fbaf6d416ac GIT binary patch literal 6149 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 hjp7K?{XbFuwS&|Ykzh>!ij`3T + + + + ZDEMO_EXCEL15_13 + 15_13_MergedCellsFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_13 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_13 + filename + + + MI + ZDEMO_EXCEL15_13 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_24.w3mi.data.xlsx b/src/demos/zdemo_excel15_24.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9f5361abe98f4e8401dfb950ad4891fbbe314409 GIT binary patch literal 8860 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 XIY}50U49G3=zv5Je}93@0D%7m4st9U literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel15_24.w3mi.xml b/src/demos/zdemo_excel15_24.w3mi.xml new file mode 100644 index 0000000..876e98d --- /dev/null +++ b/src/demos/zdemo_excel15_24.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL15_24 + 15_24_Sheets_with_different_default_date_formatsFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_24 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_24 + filename + + + MI + ZDEMO_EXCEL15_24 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel15_31.w3mi.data.xlsx b/src/demos/zdemo_excel15_31.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..689e3b98f671da0fe0a498fcb8fbdf3f24d5da0c GIT binary patch literal 10056 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 Cq;mBD literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel15_31.w3mi.xml b/src/demos/zdemo_excel15_31.w3mi.xml new file mode 100644 index 0000000..eed800e --- /dev/null +++ b/src/demos/zdemo_excel15_31.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL15_31 + 15_31_AutosizeWithDifferentFontSizesFromReader.xlsx (ZDEMO_EXCEL15) + + + MI + ZDEMO_EXCEL15_31 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL15_31 + filename + + + MI + ZDEMO_EXCEL15_31 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel16.w3mi.data.xlsx b/src/demos/zdemo_excel16.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8abb024289c54a78bf61f3ae9b0cb71dbce33604 GIT binary patch literal 10926 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel16.w3mi.xml b/src/demos/zdemo_excel16.w3mi.xml new file mode 100644 index 0000000..2d90ce6 --- /dev/null +++ b/src/demos/zdemo_excel16.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL16 + 16_Drawings.xlsx (ZDEMO_EXCEL16) + + + MI + ZDEMO_EXCEL16 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL16 + filename + + + MI + ZDEMO_EXCEL16 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel17.w3mi.data.xlsx b/src/demos/zdemo_excel17.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..78ac3e2e3979542de3aa18bcc2264806052f6857 GIT binary patch literal 5971 zcmZ`-1yEFb`(6bE$)zPOEg+zvbT1{{oeRj)A>9I^fOMCDEZq$fQql-ZEWLuHG%HHy zw_fM}dF8wRojK<>vop^#=REIw-gwj$(a=c%000)?D&ehW!A!oI_ALNl865y1M*V9j z<>crFadZP~c|V7^8b9)KurE(kROtfYhEx&_lkvi9OoQfXvhATnMjaLzmJkpV1a-8BGv4w?D&+R#gqLM{0ZL!3HuKrWpg+Lq{S=->ez22@A zW$8htX}FyB(7uix8(Ue>ci@;}9&YiSWCRbKFkEm*4Samg-;9+t<{Cpqz)Pc2_3HJ? zj@iQ)VMj?>wiYB2)s&n>B#f+sXj;+fO3erS$|%tRUz=|{iHWr}VO07E?Pxn0(_I)F z2V#T61J#>g7?2T{uc~=51<1;S4^R#j#GVk^R>SQI^(o)XyT{U290*j`&w7{>#Com7 z!k(%tVTG_sR~Rp((a={)rniT1wez$H{-7)q?^df%!25rwxn zDH+Qs^+j(3063@<>;kcO<$Uz>ULLQkg7z5qbtMsG#LIw*tO)MdyonDr>0rvD9cGHA zMuXQ@FUlDORe`uPiknSs&QDKk*J9ou4?E%~c+(G{_4QVi%uyzg=Jvf|@uoX%<`M$e+@qR8a5usH&yG)x`~^rp zdT`tTlpD)s5Fl$F`jOv=UUxP^{E$?f=LdQv#|rU}li}MDv@|7EaI9T%4Y}a+*DV{xcgh<0TwFasg#3iM+uX*(Ep@M%rp`WJ(z%Hs{=#yFbpv zS%qcmZs*8uk#3nTm!Vlar z3HSa+ivA=}-mh~hHA#9h%yr_vJt_Y3Opp9hmyWu9SNeGl7iED7vSBfd0DchNmDRBp z`$fx`PMA5`_RPt8&%G{n zD;pxPAN2Fn^6A|MVlTXLm_0tSb7ilc0!An@B0=WT3OO$aUp#RPuACfKCGE8FOv%wpWCPJm&+j%6cXLRhBTiWIUF`Z*v$iE%$4gh% zl4hUB_7;jRCNQ6zE)UZF85N~!0|H@GRD4lUA^c}lo;kTdeuZUB$qC}=20iw3&>LxpDy_XnIu|3dw!;HLVufCkZHsu4_+9LL!CXKP^vAFX} zGRdox2#&CIDj0WSIdnoFKWrRmYN)E33p^w;BH3a~apjh@Ln=pCuh^*#-47~~Y@E<} zOdIX-8gB(@k0GE4XD{pE?iA^Y;^NCB+)aAvsqn+>lMbCg2oZ_af>}J!&q7ph4MtWc zAEPzygqI;hU?%I7vD499k>E3$WA@@Dc)hmosJOZ;UD+8_2NYQ+OPx+uDHwszUYeh& zEiO1nVLkt>u+mks$wf~tKgV#nZ8>(|^+m;NBLyHoq7CV!x5HnxjmChTu-@WH6Q9z# zySj-##xX3XR3kto7H1|#ce-|H2*1v|V%0ilzUHGrugg3?I35N6sWjiMoZ6qIpcJJv zCF=CD=loR-Je^$Z%$=OQ|@!&MmC!QS4dA^FTsPH;JXwJZx7M% zO%Cpciq(!~_T#^lYkQx(9hke$0EzU0GgGz}<-sh$w0@x;+R2{DUumB2*&Ico&GEBy zscQCKdlfe9+I`MH^X_IPXDHivR01u;@9B&Y!7r5@?l7@z)Q=B>P}Y4U?p6m!R3=9T zD7!5NvId|R#(ngs)op1su8UZ_`&Jez=J7+}>k9au@6ih14P^k4=tI#M0KhxiU#$wI zjGHyY0rKnq_@^$rX<#P=AF!i6Jo|Vu05UC+$*}*gc4Y)QR*%pF%RUf(j{m9ff&~rLZEfR=9l! z%SFcsQbUcuKyxQI1J5#QCnh!G))I^`wyo3+bLRv&pHLwMlH(oo+&=9qcL0|pNlI75 zO|JHyTG77;Vp$FwMTaJ6RLvjFWoBvw)Q*DJp3bXVO*}YU1Dv$g)Tx`b&M)kZ8dgzi z85y_{v~=loE%IKLW4EtB#P57D_`ZuRPD79^Hj%wNUVD;h?^Rv7GOP1AV3#qpD$tlMB)EjA*zd;A&VR~G2!Dq+6W@BOl1 zk=+r1t}5Vh^!#3NhhpFpXvp^PS>u96d+j@q7fHV84M6Mho>)#csaYTDCD#nOdNXR~ ziV*7Mdw17`gghLp?-j|IlaHyTG!APA24heINQDFxh}Y2VWf;5N514PU(Myxav%G!A z{ffg}$_>4FMr;%qhCw}mwY_*K2t)`~&{>wPn5q;6+M6`SFYpe86%rXrWNj@z3}mG8 zBvpDZc70SU-hMT6y0XtdLi@sO9S?bR*2U6(anbZwqR`3CC)svU?}MFE)qv|gD4s0w zmCLRDAZ#V$$%IdY{X(cE1zTi$h}#}XP*Q+{m9Kv z3X?j9jiRPX>ml}hVRS0?J7Q^lLcVy7-Q4U0L&F1Y+%JQKS^~=vFM>xpC(7f4-Fq-o zp9-C}r9Kc3bWMVf-Kgm{XN!Vj}rNVtJ66!BbJQxPtoI~ zw=^E+GTHLU-zRtJ@1usT%IZDEBxJG`#GBTl#rCII%TC~eDn!~1m4QdFlY^O}j`h{l zqI#D*r$63}Ra7CZbI)K4t;rTLrb_f(c5_CQazpj3@=`c=wJCf;ZWTbw@o;wypaHhl zxmT7PyAGzCJ-zL9b@#ZQ2^v;!LFs%wSL<=MC(STlzT{{amU8nkflX4(@mLH+**GqK zGdVZPr0*K#j(=^lK_P$tB_Q)nW{l>9VSoT`3J?F2df)ww%$yG*I@`tt@pHCxP+0XK z@}cVd$Iv{a%H*@y=15|9&Nz1qkmQ`F|9~zmyWGc7Lws6$)QE3M5?@04wKaZPjy^jb zp(j?fHohTV-Ni0j`P{U%$F|e^pw=_P#^9b5Th`o7lGAZA*j%Ldh`Hq0*K+%dZLQiZ z?_{=VYU$2uZu$r97`8aAj*N&o0FM5iYhY6{W%7B824A^6+$+sdxm*yF>5b{wWw}#0 zHYABeH@%vOTf1dAA?%O9vJ)KF zeU=F=YzcT{BpM7d`yWrTR=ET&2`o%h!^f7tYkfMpQNDvEd{iHxMu-#CMewV!{j;S- zseMvGb+Zf7Pqb=<^bdf%<*z_F|EX}lmjvVK=`bsb`%Kb~=(rjz+s=^l@p!>dQ#vb|IF zG4Fs4ws~XZE`u=EgCa(6Ntf$oL2wG1c--8IE&@dC5rcQK99+jum#vp2_QTAiSd6nv zA?&0(y%(>9k9&Cw#Ml)`2=-iB@Oxg^PhU}f@)hR}KQx+(JuBf`p zf+C}R%=^K8ofN7m0t-%=9X0Qvy+L_j4DStdW!mr@rQ8|X^QEVn_bv4nMVAEc2RC#^ zhWXzoJc&vrz}I{ms6z>~*$?#T(yl#ZN`i87B7Zoq*7a_Y|2ZyPcHEZRLn%sxYK(Zl zRCRUpwuiX>Y=`BE!{G=nU?5m#5K!;y#EeIpl5{OOq;m}~Z((**1=J&;-cC`_^w6YHXB2o0ao zgaFXr-x>0f7T7|dPqu}2kC4U)Gg*alJqk2;#)p%MNiXI0Lda+>^5uhH9^AYw>+#6=gbP zX6r>~5za09p`Mn{wL;V{ZzF28-=B~(BpigbuxHc7eCn`K#G0%irK8$h zC?stA7V)@ujk9|y!mQQ%H~`vdbAQEwc~z@(elM==?Wi*}M+>Hy9szNUFB#(Hk=rw= z4{glZuJH=nz`d*SW=bFWEU>nZ3D|I_9K6Eg?@%%0-!-o1mnRG->7B}uQLrW=W_Dl* zkXPKnINE$yRpw-Q_1D5S)q;{+CXG2Hci6woFpX&{!V`?1i&Qch?#Fsg*uq6V*^!QF|M`Q9rJ!o#yNOIf>P zN5gV^-=9`3lAm(Rx$_{cO3B?_1oVwpRh`|Y5s!mEA#|?p{FxXR6de>jsDuzjCCATo zA2ltxTAR5*EHvF*Y#gor&JX|CPG$7RxH5*-Mje&_8v@n@(b3y@(iF9CfK!9%^m zOVg`6R7*I2zV?d^45~WR=p1kd0J!(N%D7rXAa1TG1yIM|lVX%M!ex#Ncu5-bC8CLm z-VB#QfmzwonuU0-4ac{WEq*%5g8IzPdxPbWyg5E{8>kvez9Ty4dX!`QWBt(6@0>xV z3Nv5uEByKBcBn))-X~3Fu235(+~wUBr!Dd5N)9oH-yasoAYa^0Ol51lLt2 z&6b*z*lZ3t^I;5rOcu&JPtrsjUA62V7Hy?;Vkkz>!Ms>Fy>rx7dJp6(R1W-y`Nx!{ z6>4Y9RBg$g*`SXs$zwDpCXOyKVwDvgE)jZtMGWcDrT3_JDGJtiENEn#a^sQb4lK|4 z2!tZ3+2(x+a1AR#AagqR@pj-En^{AHMEjST_L-wF&4V`%W&`+%rP{)x#LPa*cbE3Q6y|zKiL6kDjtke}guh~XCJDBOZjlRb7{?)sR&)%g} ze4z77y_41!8(Vv9DjjSoXPWH2wJQF$yz@GK!D1)VyS~80u;IiyVv@PbJMnPlNNc8< z2wxo$-dUaxn|K+|Rz;2bg)L_|bo4L=Q*^mnsDlT>!WB3+?yZh`MKymQBXhS(EMs;P zr|KSCxFZY&yNz>F`_JSMv}~qi9(*FJ{-XS0i^(LD%JZ{4?K{Qxy*%(W%Wjdo_#r;D z*s9Fb0A4p9xiGw*h{le$;A#eHDpt0+hc{}GIR4Zgn9kyKrW&3(#_tia7#GsvinkRN zEK7rr!J6Jrj_%$Oy=5@8TeupaO^zd zxn`g75YDmC`3}mgB_&**HL9XRxa+6IDI~^fj4cX-@rIjwYX_A-9+ECKYpWGP`>GZ(f?3_rHP;LAF-|%np+}wbF^OT~>-M{R^HwkXeV801$asMXx=R|fBd~?+J4emfq9zXlb ze+Q47(3{QZH*^*?3jSMby2)^}uK#8jMY)71hM!OVKUMxF%gt}*H%l|h{Qi^WU%wzV WMGTbEKTTR3z!)lV?0>daz<&S$<8%iA literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel17.w3mi.xml b/src/demos/zdemo_excel17.w3mi.xml new file mode 100644 index 0000000..b36fd03 --- /dev/null +++ b/src/demos/zdemo_excel17.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL17 + 17_SheetProtection.xlsx (ZDEMO_EXCEL17) + + + MI + ZDEMO_EXCEL17 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL17 + filename + + + MI + ZDEMO_EXCEL17 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel18.w3mi.data.xlsx b/src/demos/zdemo_excel18.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0cc5574a27d8ec48418570aae30a357db96e5a19 GIT binary patch literal 5736 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel18.w3mi.xml b/src/demos/zdemo_excel18.w3mi.xml new file mode 100644 index 0000000..c53eb71 --- /dev/null +++ b/src/demos/zdemo_excel18.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL18 + 18_BookProtection.xlsx (ZDEMO_EXCEL18) + + + MI + ZDEMO_EXCEL18 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL18 + filename + + + MI + ZDEMO_EXCEL18 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel19.w3mi.data.xlsx b/src/demos/zdemo_excel19.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3321fdc569cdd52a41f9a95ca3e6c280e26c3365 GIT binary patch literal 7579 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 rz^fdAjPmc7HG=3x{@mQ(mUW$P)D+PXy! + + + + ZDEMO_EXCEL19 + 19_SetActiveSheet.xlsx (ZDEMO_EXCEL19) + + + MI + ZDEMO_EXCEL19 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL19 + filename + + + MI + ZDEMO_EXCEL19 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel2.w3mi.data.xlsx b/src/demos/zdemo_excel2.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6195be7330408793e6d5c848f2703fc748f0c01a GIT binary patch literal 6843 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 + + + + ZDEMO_EXCEL2 + 02_Styles.xlsx (ZDEMO_EXCEL2) + + + MI + ZDEMO_EXCEL2 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL2 + filename + + + MI + ZDEMO_EXCEL2 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel21.w3mi.data.xlsx b/src/demos/zdemo_excel21.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d1efe5ec7ad44db96def6e25987c18cfe1e9968d GIT binary patch literal 10521 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel21.w3mi.xml b/src/demos/zdemo_excel21.w3mi.xml new file mode 100644 index 0000000..563ed7e --- /dev/null +++ b/src/demos/zdemo_excel21.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL21 + 21_BackgroundColorPicker.xlsx (ZDEMO_EXCEL21) + + + MI + ZDEMO_EXCEL21 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL21 + filename + + + MI + ZDEMO_EXCEL21 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel22.prog.abap b/src/demos/zdemo_excel22.prog.abap index ba2e14a..d54fbf1 100644 --- a/src/demos/zdemo_excel22.prog.abap +++ b/src/demos/zdemo_excel22.prog.abap @@ -8,6 +8,8 @@ REPORT zdemo_excel22. +TYPES: ty_sflight_lines TYPE TABLE OF sflight. + DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style TYPE REF TO zcl_excel_style, @@ -38,8 +40,8 @@ START-OF-SELECTION. lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( ip_title = 'PN_MASSIVE' ). - DATA lt_test TYPE TABLE OF sflight. - SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + DATA lt_test TYPE ty_sflight_lines. + PERFORM load_fixed_data CHANGING lt_test. " sheet style (white background) lo_style = lo_excel->add_new_style( ). @@ -125,3 +127,50 @@ START-OF-SELECTION. *** Create output lcl_output=>output( lo_excel ). + + +FORM load_fixed_data CHANGING ct_test TYPE ty_sflight_lines. + DATA: lt_lines TYPE TABLE OF string, + lv_line TYPE string, + lt_fields TYPE TABLE OF string, + lv_comp TYPE i, + lv_field TYPE string, + ls_test TYPE sflight. + FIELD-SYMBOLS: TYPE simple. + + APPEND 'AA 0017 20171219 422 USD 747-400 385 371 191334 31 28 21 21' TO lt_lines. + APPEND 'AA 0017 20180309 422 USD 747-400 385 365 189984 31 29 21 20' TO lt_lines. + APPEND 'AA 0017 20180528 422 USD 747-400 385 374 193482 31 30 21 20' TO lt_lines. + APPEND 'AA 0017 20180816 422 USD 747-400 385 372 193127 31 30 21 20' TO lt_lines. + APPEND 'AA 0017 20181104 422 USD 747-400 385 44 23908 31 4 21 3' TO lt_lines. + APPEND 'AA 0017 20190123 422 USD 747-400 385 40 20347 31 3 21 2' TO lt_lines. + APPEND 'AZ 0555 20171219 185 EUR 737-800 140 133 32143 12 12 10 10' TO lt_lines. + APPEND 'AZ 0555 20180309 185 EUR 737-800 140 137 32595 12 12 10 10' TO lt_lines. + APPEND 'AZ 0555 20180528 185 EUR 737-800 140 134 31899 12 11 10 10' TO lt_lines. + APPEND 'AZ 0555 20180816 185 EUR 737-800 140 128 29775 12 10 10 9' TO lt_lines. + APPEND 'AZ 0555 20181104 185 EUR 737-800 140 0 0 12 0 10 0' TO lt_lines. + APPEND 'AZ 0555 20190123 185 EUR 737-800 140 23 5392 12 1 10 2' TO lt_lines. + APPEND 'AZ 0789 20171219 1030 EUR 767-200 260 250 307176 21 20 11 11' TO lt_lines. + APPEND 'AZ 0789 20180309 1030 EUR 767-200 260 252 306054 21 20 11 10' TO lt_lines. + APPEND 'AZ 0789 20180528 1030 EUR 767-200 260 252 307063 21 20 11 10' TO lt_lines. + APPEND 'AZ 0789 20180816 1030 EUR 767-200 260 249 300739 21 19 11 10' TO lt_lines. + APPEND 'AZ 0789 20181104 1030 EUR 767-200 260 104 127647 21 8 11 5' TO lt_lines. + APPEND 'AZ 0789 20190123 1030 EUR 767-200 260 18 22268 21 1 11 1' TO lt_lines. + APPEND 'DL 0106 20171217 611 USD A380-800 475 458 324379 30 29 20 20' TO lt_lines. + APPEND 'DL 0106 20180307 611 USD A380-800 475 458 324330 30 30 20 20' TO lt_lines. + APPEND 'DL 0106 20180526 611 USD A380-800 475 459 328149 30 29 20 20' TO lt_lines. + APPEND 'DL 0106 20180814 611 USD A380-800 475 462 326805 30 30 20 18' TO lt_lines. + APPEND 'DL 0106 20181102 611 USD A380-800 475 167 115554 30 10 20 6' TO lt_lines. + APPEND 'DL 0106 20190121 611 USD A380-800 475 11 9073 30 1 20 1' TO lt_lines. + LOOP AT lt_lines INTO lv_line. + CONDENSE lv_line. + SPLIT lv_line AT space INTO TABLE lt_fields. + lv_comp = 2. + LOOP AT lt_fields INTO lv_field. + ASSIGN COMPONENT lv_comp OF STRUCTURE ls_test TO . + = lv_field. + lv_comp = lv_comp + 1. + ENDLOOP. + APPEND ls_test TO ct_test. + ENDLOOP. +ENDFORM. diff --git a/src/demos/zdemo_excel22.w3mi.data.xlsx b/src/demos/zdemo_excel22.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..756322271b8a0cbdca8c70789c2f7e1387eab819 GIT binary patch literal 7295 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 + + + + ZDEMO_EXCEL22 + 22_itab_fieldcatalog.xlsx (ZDEMO_EXCEL22) + + + MI + ZDEMO_EXCEL22 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL22 + filename + 22_itab_fieldcatalog.xlsx + + + MI + ZDEMO_EXCEL22 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel23.w3mi.data.xlsx b/src/demos/zdemo_excel23.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b40052e55ea5db962c62067f8ba96dd98d1df690 GIT binary patch literal 9289 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel23.w3mi.xml b/src/demos/zdemo_excel23.w3mi.xml new file mode 100644 index 0000000..ee1376d --- /dev/null +++ b/src/demos/zdemo_excel23.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL23 + 23_Sheets_with_and_without_grid_lines.xlsx (ZDEMO_EXCEL23) + + + MI + ZDEMO_EXCEL23 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL23 + filename + + + MI + ZDEMO_EXCEL23 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel24.prog.abap b/src/demos/zdemo_excel24.prog.abap index c82e2a0..2bdee7f 100644 --- a/src/demos/zdemo_excel24.prog.abap +++ b/src/demos/zdemo_excel24.prog.abap @@ -22,6 +22,8 @@ DATA: lv_full_path TYPE string, lv_file_separator TYPE c. DATA: lv_value TYPE string. +DATA: lv_date TYPE d VALUE '19000226', + lv_row TYPE i. CONSTANTS: gc_save_file_name TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'. INCLUDE zdemo_excel_outputopt_incl. @@ -36,9 +38,9 @@ START-OF-SELECTION. lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( ip_title = 'Sheet1' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Default Date Format' ). - " Insert current date - lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). - lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). + " Insert date + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Date:' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = lv_date ). lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!A1' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is a link to the second sheet' ip_hyperlink = lo_hyperlink ). @@ -52,8 +54,8 @@ START-OF-SELECTION. lo_worksheet->set_title( ip_title = 'Sheet2' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Date Format set to YYYYMMDD' ). " Insert current date - lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). - lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Date:' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = lv_date ). lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet3!B2' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is link to the third sheet' ip_hyperlink = lo_hyperlink ). @@ -66,8 +68,8 @@ START-OF-SELECTION. lo_worksheet->set_title( ip_title = 'Sheet3' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Date Format set to YYYY/MM/DD' ). " Insert current date - lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). - lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Date:' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = lv_date ). lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet4!B2' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is link to the 4th sheet' ip_hyperlink = lo_hyperlink ). @@ -81,8 +83,6 @@ START-OF-SELECTION. " Loop from Start Date to the Max Date current data in daily steps CONSTANTS: lv_max TYPE d VALUE '19000302'. - DATA: lv_date TYPE d VALUE '19000226', - lv_row TYPE i. lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'Formated date' ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Integer value for this date' ). lo_worksheet->set_cell( ip_column = 'D' ip_row = 3 ip_value = 'Date as string' ). diff --git a/src/demos/zdemo_excel24.w3mi.data.xlsx b/src/demos/zdemo_excel24.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7b632a84d5ec03a3ebae80d41dd4690242308f7a GIT binary patch literal 9027 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 + + + + ZDEMO_EXCEL24 + 24_Sheets_with_different_default_date_formats.xlsx (ZDEMO_EXCEL24) + + + MI + ZDEMO_EXCEL24 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL24 + filename + + + MI + ZDEMO_EXCEL24 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel27.w3mi.data.xlsx b/src/demos/zdemo_excel27.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..aa3953d1b31e518622882373d531789d2e03113c GIT binary patch literal 6755 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 gVHqTR% + + + + ZDEMO_EXCEL27 + 27_ConditionalFormatting.xlsx (ZDEMO_EXCEL27) + + + MI + ZDEMO_EXCEL27 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL27 + filename + + + MI + ZDEMO_EXCEL27 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel3.prog.abap b/src/demos/zdemo_excel3.prog.abap index 0cf5560..c51bb05 100644 --- a/src/demos/zdemo_excel3.prog.abap +++ b/src/demos/zdemo_excel3.prog.abap @@ -8,6 +8,8 @@ REPORT zdemo_excel3. +TYPES: ty_sflight_lines TYPE TABLE OF sflight. + DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_column TYPE REF TO zcl_excel_column. @@ -31,6 +33,7 @@ CONSTANTS: gc_save_file_name TYPE string VALUE '03_iTab.xlsx'. INCLUDE zdemo_excel_outputopt_incl. PARAMETERS: p_empty TYPE flag. +PARAMETERS: p_checkr NO-DISPLAY TYPE abap_bool. START-OF-SELECTION. " Creates active sheet @@ -40,10 +43,14 @@ START-OF-SELECTION. lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( ip_title = 'Internal table' ). - DATA lt_test TYPE TABLE OF sflight. + DATA lt_test TYPE ty_sflight_lines. IF p_empty <> abap_true. - SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + IF p_checkr = abap_true. + PERFORM load_fixed_data_for_checker CHANGING lt_test. + ELSE. + SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + ENDIF. ENDIF. ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium2. @@ -93,3 +100,51 @@ START-OF-SELECTION. *** Create output lcl_output=>output( lo_excel ). + + + +FORM load_fixed_data_for_checker CHANGING ct_test TYPE ty_sflight_lines. + DATA: lt_lines TYPE TABLE OF string, + lv_line TYPE string, + lt_fields TYPE TABLE OF string, + lv_comp TYPE i, + lv_field TYPE string, + ls_test TYPE sflight. + FIELD-SYMBOLS: TYPE simple. + + APPEND 'AA 0017 20171219 422 USD 747-400 385 371 191334 31 28 21 21' TO lt_lines. + APPEND 'AA 0017 20180309 422 USD 747-400 385 365 189984 31 29 21 20' TO lt_lines. + APPEND 'AA 0017 20180528 422 USD 747-400 385 374 193482 31 30 21 20' TO lt_lines. + APPEND 'AA 0017 20180816 422 USD 747-400 385 372 193127 31 30 21 20' TO lt_lines. + APPEND 'AA 0017 20181104 422 USD 747-400 385 44 23908 31 4 21 3' TO lt_lines. + APPEND 'AA 0017 20190123 422 USD 747-400 385 40 20347 31 3 21 2' TO lt_lines. + APPEND 'AZ 0555 20171219 185 EUR 737-800 140 133 32143 12 12 10 10' TO lt_lines. + APPEND 'AZ 0555 20180309 185 EUR 737-800 140 137 32595 12 12 10 10' TO lt_lines. + APPEND 'AZ 0555 20180528 185 EUR 737-800 140 134 31899 12 11 10 10' TO lt_lines. + APPEND 'AZ 0555 20180816 185 EUR 737-800 140 128 29775 12 10 10 9' TO lt_lines. + APPEND 'AZ 0555 20181104 185 EUR 737-800 140 0 0 12 0 10 0' TO lt_lines. + APPEND 'AZ 0555 20190123 185 EUR 737-800 140 23 5392 12 1 10 2' TO lt_lines. + APPEND 'AZ 0789 20171219 1030 EUR 767-200 260 250 307176 21 20 11 11' TO lt_lines. + APPEND 'AZ 0789 20180309 1030 EUR 767-200 260 252 306054 21 20 11 10' TO lt_lines. + APPEND 'AZ 0789 20180528 1030 EUR 767-200 260 252 307063 21 20 11 10' TO lt_lines. + APPEND 'AZ 0789 20180816 1030 EUR 767-200 260 249 300739 21 19 11 10' TO lt_lines. + APPEND 'AZ 0789 20181104 1030 EUR 767-200 260 104 127647 21 8 11 5' TO lt_lines. + APPEND 'AZ 0789 20190123 1030 EUR 767-200 260 18 22268 21 1 11 1' TO lt_lines. + APPEND 'DL 0106 20171217 611 USD A380-800 475 458 324379 30 29 20 20' TO lt_lines. + APPEND 'DL 0106 20180307 611 USD A380-800 475 458 324330 30 30 20 20' TO lt_lines. + APPEND 'DL 0106 20180526 611 USD A380-800 475 459 328149 30 29 20 20' TO lt_lines. + APPEND 'DL 0106 20180814 611 USD A380-800 475 462 326805 30 30 20 18' TO lt_lines. + APPEND 'DL 0106 20181102 611 USD A380-800 475 167 115554 30 10 20 6' TO lt_lines. + APPEND 'DL 0106 20190121 611 USD A380-800 475 11 9073 30 1 20 1' TO lt_lines. + LOOP AT lt_lines INTO lv_line. + CONDENSE lv_line. + SPLIT lv_line AT space INTO TABLE lt_fields. + lv_comp = 2. + LOOP AT lt_fields INTO lv_field. + ASSIGN COMPONENT lv_comp OF STRUCTURE ls_test TO . + = lv_field. + lv_comp = lv_comp + 1. + ENDLOOP. + APPEND ls_test TO ct_test. + ENDLOOP. +ENDFORM. diff --git a/src/demos/zdemo_excel3.w3mi.data.xlsx b/src/demos/zdemo_excel3.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..26e3c8a605cf6492eec8547308d1756413b5d444 GIT binary patch literal 9337 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel3.w3mi.xml b/src/demos/zdemo_excel3.w3mi.xml new file mode 100644 index 0000000..051eff5 --- /dev/null +++ b/src/demos/zdemo_excel3.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL3 + 03_iTab.xlsx (ZDEMO_EXCEL3) + + + MI + ZDEMO_EXCEL3 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL3 + filename + + + MI + ZDEMO_EXCEL3 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel30.w3mi.data.xlsx b/src/demos/zdemo_excel30.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6b72db7382bdb7870f9c3caedabf8a164e8743aa GIT binary patch literal 6197 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 + + + + ZDEMO_EXCEL30 + 30_CellDataTypes.xlsx (ZDEMO_EXCEL30) + + + MI + ZDEMO_EXCEL30 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL30 + filename + 30_CellDataTypes.xlsx + + + MI + ZDEMO_EXCEL30 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel31.w3mi.data.xlsx b/src/demos/zdemo_excel31.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f1abee1c9d35a06b83ca9618fd0fd9144bd1c5b1 GIT binary patch literal 10113 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel31.w3mi.xml b/src/demos/zdemo_excel31.w3mi.xml new file mode 100644 index 0000000..56cecb6 --- /dev/null +++ b/src/demos/zdemo_excel31.w3mi.xml @@ -0,0 +1,29 @@ + + + + + ZDEMO_EXCEL31 + 31_AutosizeWithDifferentFontSizes.xlsx (ZDEMO_EXCEL31) + + + MI + ZDEMO_EXCEL31 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL31 + filename + 31_AutosizeWithDifferentFontSizes.xlsx + + + MI + ZDEMO_EXCEL31 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel33.prog.abap b/src/demos/zdemo_excel33.prog.abap index 29a8970..adfe106 100644 --- a/src/demos/zdemo_excel33.prog.abap +++ b/src/demos/zdemo_excel33.prog.abap @@ -8,12 +8,14 @@ REPORT zdemo_excel33. +TYPES: ty_t005t_lines TYPE TABLE OF t005t. + DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_converter TYPE REF TO zcl_excel_converter, lo_autofilter TYPE REF TO zcl_excel_autofilter. -DATA lt_test TYPE TABLE OF t005t. +DATA lt_test TYPE ty_t005t_lines. DATA: l_cell_value TYPE zexcel_cell_value, ls_area TYPE zexcel_s_autofilter_area. @@ -33,7 +35,7 @@ START-OF-SELECTION. lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( ip_title = 'Internal table' ). - SELECT * UP TO 2 ROWS FROM t005t INTO TABLE lt_test. "#EC CI_NOWHERE + PERFORM load_fixed_data CHANGING lt_test. CREATE OBJECT lo_converter. @@ -65,3 +67,30 @@ START-OF-SELECTION. *** Create output lcl_output=>output( lo_excel ). + + +FORM load_fixed_data CHANGING ct_test TYPE ty_t005t_lines. + DATA: lt_lines TYPE TABLE OF string, + lv_line TYPE string, + lt_fields TYPE TABLE OF string, + lv_comp TYPE i, + lv_field TYPE string, + ls_test TYPE t005t. + FIELD-SYMBOLS: TYPE simple. + + APPEND '001 E AD Andorra Andorran Andorra Andorran ' TO lt_lines. + APPEND '001 E BE Belgium Belgian Belgium Belgian ' TO lt_lines. + APPEND '001 E DE Germany German Germany German ' TO lt_lines. + APPEND '001 E FM Micronesia Micronesian Micronesia Micronesian' TO lt_lines. + LOOP AT lt_lines INTO lv_line. + CONDENSE lv_line. + SPLIT lv_line AT space INTO TABLE lt_fields. + lv_comp = 1. + LOOP AT lt_fields INTO lv_field. + ASSIGN COMPONENT lv_comp OF STRUCTURE ls_test TO . + = lv_field. + lv_comp = lv_comp + 1. + ENDLOOP. + APPEND ls_test TO ct_test. + ENDLOOP. +ENDFORM. diff --git a/src/demos/zdemo_excel33.w3mi.data.xlsx b/src/demos/zdemo_excel33.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bec0a54a52f985d30e4836c09b0c66d33283dc70 GIT binary patch literal 6248 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel33.w3mi.xml b/src/demos/zdemo_excel33.w3mi.xml new file mode 100644 index 0000000..92bdb7b --- /dev/null +++ b/src/demos/zdemo_excel33.w3mi.xml @@ -0,0 +1,29 @@ + + + + + ZDEMO_EXCEL33 + 33_autofilter.xlsx (ZDEMO_EXCEL33) + + + MI + ZDEMO_EXCEL33 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL33 + filename + 33_autofilter.xlsx + + + MI + ZDEMO_EXCEL33 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel34.w3mi.data.xlsx b/src/demos/zdemo_excel34.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f58ce2a6c44acd64e53e70000c5f61fc7a45e0b7 GIT binary patch literal 6943 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 H1mOPx%Cj1( literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel34.w3mi.xml b/src/demos/zdemo_excel34.w3mi.xml new file mode 100644 index 0000000..9231c49 --- /dev/null +++ b/src/demos/zdemo_excel34.w3mi.xml @@ -0,0 +1,29 @@ + + + + + ZDEMO_EXCEL34 + 34_Static Styles_Chess.xlsx (ZDEMO_EXCEL34) + + + MI + ZDEMO_EXCEL34 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL34 + filename + 34_Static Styles_Chess.xlsx + + + MI + ZDEMO_EXCEL34 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel35.w3mi.data.xlsx b/src/demos/zdemo_excel35.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..252a5a43b8eefe0b86494ca886ce601d2c9858d5 GIT binary patch literal 6354 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel35.w3mi.xml b/src/demos/zdemo_excel35.w3mi.xml new file mode 100644 index 0000000..63f55ff --- /dev/null +++ b/src/demos/zdemo_excel35.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL35 + 35_Static_Styles.xlsx (ZDEMO_EXCEL35) + + + MI + ZDEMO_EXCEL35 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL35 + filename + + + MI + ZDEMO_EXCEL35 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel36.w3mi.data.xlsx b/src/demos/zdemo_excel36.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5f98556f843f2f78414dd4fa3d167e8a0ee5b081 GIT binary patch literal 8367 zcmd5>bx_oAx2L;Px;vGW?k<<^knUKdL|PhY1gWJPq>=8B?q&s)E2D_FYMm2`&-!_Vp`;_fEXgman(FdiZz18rS29uI{qJz&D6fYQrmF(?#Gv=YC^z=Jw zo;{*wjHZLqAa7UNf@)=SXkq3`tSuy62`r2S#HUaN)d&=(kr zS5Rty8RQ*mO8Pp)5W+A}P^gg8*ww<`jf4Hivpil|1@?1!q0W^F}-?u;z2>9R@BrI?QZ}Vr(E_?0ED%cG=!F#%4pPp?6x4 zQyJ+^IZwZOj$KQW1EQ?Yi?M*5Od@D*7HQQxdifnfvLW^_VUuyZvo$`9J7{kKnq_S1 z40^_@XBYKYaud1K`~)9{PxBk$YOlv|+3-cVPvI(AH*ilcM_?i;=3l}5eHBU=jn5+> zzNrZd1%(B<3UjCDYOYSsZXBl0&OaP8LtWf)i4*GvrPD`wf!&qUnphk_8H(`OWKOtd zdWc#g4$gyZ{z?zS3(&5nSApO37%N*~!7UDlOk{wm5s42 zq0sOZbSy`rK>-$39K87z;u|+3+}>0yYg=pXn6L9&^7w#UrW6|%2~Azti_U%GV_JG? z7a9{)up(o7k5OzEo)z0|r8Uv;1cl>l=-Y3JEzuLYxlBiS~+dT=8820Xdyl0ZJUzsoX-_$NDqd+ zN)u)>FT-Cj3+z(^0HTuKeZ>B15p4^dR32dm+B^qHLq0$HjWPQre`d zp)rD(FTpO-h={EH9ZJ?YurOM8$|ly=C|S0VW%@_B>)eXXh8v=pU0zv!yqAu*Tz6r6 z&Xvfc$cDV1OJ1UflQ-MiI zudx?{B%kX!C!7v-b!j1#rGRtP3Jpg`kQ`e1p7zB!i9b$(lL&P-)a`xAzlhEo)n0=R zW>t224>JaLipJM950n9FpsX^DgtF-efFCKSWw&9&S+FBLABX}H93Xgsa^GJxUGU)r@SLg}W5jmx5 zeiHUUP6~4`h1Ik>!f#d}0p6>I6WZ*9<&^f&y9W%})@MRKf!uH}gdxO`)6<^gSG@3W za+`;R0R(dqN>^jOLW(8(V z?8qXPy=dVhU*c%dHBsK?29P!fUeoEQSls7qJk$@wK1Tx`a%jy5Ujn=n&w?EYb@Ivk z5z6Emr_xvyVO_t#HUXzD`Lk(>^vS9OOcWu6uZvN~5>qT4Zk#rlzzCu-W@uGq1 zOr5?IH8qTtXzHV#Wff>OX+gRiALs~ZX5Qck&Z(qW=-q`(SoyhphyU9pp`zf1V<0Im zi{e+BgIpBQ+QPx&*Yoj@YdT0Zc3R@a>S&M1zL@c|m=n*SKFNAvH%Xv83wmP}o~)yu zCkBwe<*j`Ki-5NGx)p7HiTt$#yq*ciO5xzF>7M_qkZ18U2?QBU`f~_|WR!7(YZ;#X z8!Pfnz$+uAbebM`%i1Ge_Gv@JXIb!XU;FYUO3p z*2<62mJEZ&Kw%~VrQ`0EQ^e_d`qb(&6?!L`bL1ZHP+!W=)NV6x78?-SJzlnWS?2%J zP26mEz$>r-%;E?Ir^^50-1$*)hob)z(CfXC>&8_;drj7hS4lo_^;p)Ey|En3k_+CX zpWM>r>P$)LD_)bXKSJIT5P0GE{!x*%8R3LlO5=#8e-Jz=6utnz0`6xxduf^;_cMBE zW-2K>d4_k-xq?~EB!O@r=0(P_!r(~73S@^p5+myHD1G4eXrjXheh zSoTh^(~a8ss4%0Y-zaRNwDsDaH;huneqSWDU%&^wv4@LgaCl^}jVmxfpxM8C=~d8J z=X7~|kb5uUTN#0?wzo{8{%#5KEFxQNE+xSl-^dE-F2L^_y%zAe5 z<>-2NPcdjXRaYIXw4e5<5X&B6QRB<1LH@5gu%5bXro56E?rn%F_|L4)l|bZp!M&AY#+nK1H9?pg{2@`kbA>2~vo%8!j^* zLrD&zjlR%TQ;Y6f@0{yGj#X5_uXRsn4z11>FeFLzSqHi-m2!b}tnyMg4m63pUqcsw z%F)pd^gw>L*130tZsvz&d)ab(VD9b?MRQpB0)=#5D z@jhQ)v#=Y>PP5+kTP8F!C!kN@0jQ-WFP)#5G_%y1*Axd!n%JNzO#ieSlAJC`w$wDh;h# zP=vod9?2ienyqV$ytiYki-O#|Dr!30_9Uc2H6Ca1rRNuFsIeV1kPX-tZ2MgYbs>;7 zb7~vMbq}ldU50<3@fSAQ!q)L+?s?5X!;DI`seo26sB2I%-LiWhz6XTzv^8s_`n=eh zcFmo;Ov(d#wM!SKlU>dK5K&T;v*s{XA-Zue?A^_X z@`Qg`(m9Q-Ku&>S8Wl_^z#4qO;F(USM4%t#uV}?Lco;8or?#_;__qPvUz{U+hZtZ7 zl0(sd8NdzbWpCm3BXgD~8pcdM9 z)d+*VSkuMYQSd6S;#nM8o}k#MB;=oH4z3bmtlO8=OtbizcGJ~t#`)4^)xo(7-+!aH zj0Im{$lGHXbj3tU3lf@<%PR!s4Cpz>5Y_der*4jnuOmP6R2eU|C-0+fEYTS&Nw08} zy`&!9dX!=n79Bt(e{_c}z^>z0tQ@j+b&QBCToj>HwP@P-X=Jogr6G<_ppXs)KU9VV zOQe&^3*;%_WHQ2- zQZ85-%NYtQK|Qj>%d|{$ahYD*?ck+hnV0yMS2U%b3~R$iS(ir5gL{mA#|(nH(fFiU z`|E^%dx_X_pyXSKmkdJ6(H|oQNR{PgZR%=at`2myakTp7ED2*OB#*KBj4d{~%y5~l zL*gmJG+c53y{*J8HD#LjrB(z;m9vr*#g*eH2*swjw9MbCzAkdDjd5iitcm)uv1bN` zA~Np-4AQPnhM}rV>?aE46l2}|K?{4HgS(u`=c_|TU!VZOQy;qgr7$>+VPVXsxDjF_00Xj&7=>M;wo1o z(xl*PY&0Dt9a;JDd`9Ozn8(ZGG%uB*Hzpc~4pU7;MB#ifPpkRQ1oILWr~vVqL-*@5 zQLuY+8r!5M(VtYf!0IbSYJ$q&CpF)oPH{UgCCJ=hQFqTw5TE&fI(78L{eFJ-+;eSE zu$rG!TnS}JM=g<&MD;ifjVQHv=GDg-7ALBDqWdDUX>;r1?#_=fjl6Z5v-OhadG1X* z9QAZ^WJ3D)(V1t%1yY(3krxV|m1f;X+e~I?NHM)iux=`5x04#CC&T8p;ED)0^4V9_ z&tTu=x3ageFx{}BE#}R?t?f*|EjaWW2$eDZ^00*)UHBL(2MM+$5WYY99dO;OEi8a; z5TinlpG9-D#!}28C)RBe<54fIL49`YOm*oC?L{r?xNFCF9jaeF-^Mqxoy;(l#oqe zyR=Z)s1TuT)oox^(gATZx9GV2Egz& z<$*)>)Woz68s$vV4gx$$D>Q|TtM+@UL?vmoS`sKe$2q3i)jLZcBu2F3Kdj11X1Xtm zG{$RFPgz%03C9Z(c(0rWD?eh&4Tk7B;trbR+;+?C`WT9Z+W*gV8-d*4j_k?0zDEB2@?)G96EB>LK z`-qG80how(=4=y5)VEpH%CQl4bk1u9`eUGK1 zALn!sqMu1m{7$TacXrt~c!Hb$^hrv3vwc4;7+JU_oSb|DI`uhYv*JeZ!7_;OY(n{Z zJ3^#MnPM&PP3878V5gOp?;Mb%-KCWv37Hm8YWISCfNce%0iAXBm3)5rxSocg#&zVE z9OzCIDW3?P(pI?U@(icKc7y8&0|YD7^b!|{*ZD!dH2=fDvtRU)gnufwoC9J%IZkg{+`1B z^nu3Ia(j`o5WbN9Ghd$kNR@x^B^tTmAm7iJT=|qml{2 zQHkMmgj>BFJsBoq@bkNu&pcN^5FD2=;X&UhB18yy-!jzHgHrGbTIn*89(^~O3EE!l za!9Fra?!i%?Vy6%vXqXbv>?1~FI$NBh*EjLR%RaU-i7z`g2tjQEz_K%iH;mBq877y zO|=Crsi4i|5}y1b<-&q$pG~~EcMi8ql9~xU3Ua2HM%-u`yk5rIMOO-dx$m9>H7ZMp z+FupSiO~soshggI=7dG7Wn~m>*4h!?4m`ST#%^LO{PY~JIeEV`m7gD==ll|`|H2=U%v0!6=ms;O z4*zP_sOhs!&U<8_-Sd$Z*+;6^=0;!Qxl#_^!U=&w`6jw)1Ss9mEIe$|t1<-70!2Q^ zQy5P9G+b@GyE)p>;co(;BP?Au zV-&bDJK8wq#D4prIQw7I<);h&f1u0d#rdreq)6aG`^WUc^^-2iBd(D2(r?_m;q$n< z6Aob@IFHFjUO}?J!_<5~+`cK^e_VSH^k!Ondx!$ADjW!PJe9Z=$ zO?Jkv0h;G(E!DG9xqRqK%r`eb3a_f{?nJocmjzhD_G61n;jrql(l7}j z6RB1OQyB|VZ@^W$76uDAHXjHg$EY`}J#xlHCwT25cBoS&FUO3Et-_ehsgK>8S~MNs zA;sQ#WiL5?oNI`w+hoVBi|v-C50MD=6(H4q`eo!4Sbf5^nj{ zvd1+BV{~Yf!)U)`eH^#SV7k6pLPzj9uEYX{f|K^^El)Ce3+Fz`EpS5w2(CntfZ@|X zn|Ki6CNnL=t3Gpvm_xSk6jTX$%0XLmNp(N2WLB86c*%o}lY|mX;fB$ZwBciN`qJsq zEOw2zi_hz1lA~IgrzEj8rR*<4`b&w-StCe0zYf1>h*ALostyzJ=`+VPEkZw4(=`MG zl4$vFm`{BYXY9MBArlwj|Lv|_1V=Y+Pbq9e;l7gz?xvJ^#=yNPl7NK*g z?;GMD)d!;5!L)y#Gi-^U7&vT*Rggc_#BQC;_ix2HS2Af2_Qky{39d{ty?~RUi&6rs zAbTi*9g#hh!A8gzO5j(>7tuKO+C=ry$CBbv%z-7Dxv0vb-K7<|s1A@LkR~@Gw`6mm z=u45F=5|-LKzAuQRW3cqmWaB>U55vs$bF{#!!EJ=j4*KKqC%u3U)_G^#=fx|=S^t( z0jp8EB#~C-V{ZSq+2v)p78U1NPn1w$gZ*)(pz6uKOIno%e?rtl6mNLuygPdnx5NtO zLG^TpuGGz*N(U4w?HFcz9CJtjZK*ztVBhp1@x3}cBERxbp;5Y7B&|>h*JpDnjQ*;t zxNMjEa>7=rt|ut@vV^Y9COkFSa~elgZ@oGBtz9^U-ny(Xp_C*0qZA z7*s)YLjhqmWssjZ=&JE8WkZ4gcxtd4FwNpP?mX;DKqW+49!cdu3-c?umrwO^EbB+7 zPi)oZfa*MA>8pzrVlV%YsKM?5rdmQN$0zPF&wtodsww^r@Nk#*TRINXrTnp3dnovD^YmLV9g^f9?x7w^Kiq%(mezp# zL;AnBArHkL4)uSFw?V3le;)Ba#CbUL{*AMR@Du0Z1pFbu!>P+}fC5O|hA8sq4CbNm z!->IfVFrv}o#DUd2MB8#P6Eh+qB~@L@vTLyChm(jUM63m2tcJ^%m! literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel36.w3mi.xml b/src/demos/zdemo_excel36.w3mi.xml new file mode 100644 index 0000000..416430d --- /dev/null +++ b/src/demos/zdemo_excel36.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL36 + 36_DefaultStyles.xlsx (ZDEMO_EXCEL36) + + + MI + ZDEMO_EXCEL36 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL36 + filename + + + MI + ZDEMO_EXCEL36 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel38.w3mi.data.xlsx b/src/demos/zdemo_excel38.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a07e3b8e3858e0f0977bd8ebebe6804422bdeeab GIT binary patch literal 7963 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 Q;lSBKZ)NJwWeVK?0fKW}e*gdg literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel38.w3mi.xml b/src/demos/zdemo_excel38.w3mi.xml new file mode 100644 index 0000000..6a7b0e0 --- /dev/null +++ b/src/demos/zdemo_excel38.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL38 + 38_SAP-Icons.xlsx (ZDEMO_EXCEL38) + + + MI + ZDEMO_EXCEL38 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL38 + filename + + + MI + ZDEMO_EXCEL38 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel39.w3mi.data.xlsx b/src/demos/zdemo_excel39.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a637b64258be633744b3e15e8c27e9234ad0283d GIT binary patch literal 18022 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel39.w3mi.xml b/src/demos/zdemo_excel39.w3mi.xml new file mode 100644 index 0000000..b3712b4 --- /dev/null +++ b/src/demos/zdemo_excel39.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL39 + 39_Charts.xlsx (ZDEMO_EXCEL39) + + + MI + ZDEMO_EXCEL39 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL39 + filename + + + MI + ZDEMO_EXCEL39 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel4.w3mi.data.xlsx b/src/demos/zdemo_excel4.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d06760860bd0b39d43e4f68cbd93bc7e11ceae56 GIT binary patch literal 9152 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 t1iV-4K6O1r`FFJ}$seNpO|9Q)P(v9WN|#?pb! + + + + ZDEMO_EXCEL4 + 04_Sheets.xlsx (ZDEMO_EXCEL4) + + + MI + ZDEMO_EXCEL4 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL4 + filename + + + MI + ZDEMO_EXCEL4 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel40.w3mi.data.xlsx b/src/demos/zdemo_excel40.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..71898fb2f1052431fa14cc2150f4828309d815ea GIT binary patch literal 11164 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 + + + + ZDEMO_EXCEL40 + 40_Printsettings.xlsx (ZDEMO_EXCEL40) + + + MI + ZDEMO_EXCEL40 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL40 + filename + + + MI + ZDEMO_EXCEL40 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel5.w3mi.data.xlsx b/src/demos/zdemo_excel5.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..54b00711aa14826f80a7ac61aa50f21e6ae83e45 GIT binary patch literal 5867 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 L)W!Mfa0C7aDKk6y literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel5.w3mi.xml b/src/demos/zdemo_excel5.w3mi.xml new file mode 100644 index 0000000..a388f8a --- /dev/null +++ b/src/demos/zdemo_excel5.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL5 + 05_Conditional.xlsx (ZDEMO_EXCEL5) + + + MI + ZDEMO_EXCEL5 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL5 + filename + + + MI + ZDEMO_EXCEL5 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel6.w3mi.data.xlsx b/src/demos/zdemo_excel6.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6ff9a2f427aa64bca3694d6259c78b7ea459511f GIT binary patch literal 5855 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⪻(6a@XvcLYsyN8_o~gKN+#5$L0vueQmQfnvy7 z7kq9nZxlXpGMp|INXG*T+k;%JX&>cNlPz^)d=fO|k9U(?Rh>AN;sSA%5=$7;Sd76m zQk3lTA@79e5IcszZj{BowCybg^bl7?9_gmW|F(UX=k7N8 zo2T^NPoBHG>0N@m^U!YsYpkCH|DKNSg73Ed-{3aH6!4=*{4)gHh2Cu_zo9V1SoUA- z9-(|UbXMVFtA&lrhS^o0|smP-ul>T9uVgg1HiF5YDzXtpd DCJiy> literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel6.w3mi.xml b/src/demos/zdemo_excel6.w3mi.xml new file mode 100644 index 0000000..dafc22d --- /dev/null +++ b/src/demos/zdemo_excel6.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL6 + 06_Formulas.xlsx (ZDEMO_EXCEL6) + + + MI + ZDEMO_EXCEL6 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL6 + filename + + + MI + ZDEMO_EXCEL6 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel7.w3mi.data.xlsx b/src/demos/zdemo_excel7.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1c86578c7c82fd8496d1c3989f22b3608cbb1d06 GIT binary patch literal 6797 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel7.w3mi.xml b/src/demos/zdemo_excel7.w3mi.xml new file mode 100644 index 0000000..56060f7 --- /dev/null +++ b/src/demos/zdemo_excel7.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL7 + 07_ConditionalAll.xlsx (ZDEMO_EXCEL7) + + + MI + ZDEMO_EXCEL7 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL7 + filename + + + MI + ZDEMO_EXCEL7 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel8.w3mi.data.xlsx b/src/demos/zdemo_excel8.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ddd4fed3c6a3eaa420a05d4b3eb3e7d601e46db8 GIT binary patch literal 5932 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 literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel8.w3mi.xml b/src/demos/zdemo_excel8.w3mi.xml new file mode 100644 index 0000000..d9f1415 --- /dev/null +++ b/src/demos/zdemo_excel8.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL8 + 08_Range.xlsx (ZDEMO_EXCEL8) + + + MI + ZDEMO_EXCEL8 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL8 + filename + + + MI + ZDEMO_EXCEL8 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel9.w3mi.data.xlsx b/src/demos/zdemo_excel9.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b51b6a03cdc8be33770627e86fc8b63a6c7740fd GIT binary patch literal 7915 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 L+L+pt{F43;?%dyZ literal 0 HcmV?d00001 diff --git a/src/demos/zdemo_excel9.w3mi.xml b/src/demos/zdemo_excel9.w3mi.xml new file mode 100644 index 0000000..eb6616c --- /dev/null +++ b/src/demos/zdemo_excel9.w3mi.xml @@ -0,0 +1,28 @@ + + + + + ZDEMO_EXCEL9 + 09_DataValidation.xlsx (ZDEMO_EXCEL9) + + + MI + ZDEMO_EXCEL9 + fileextension + .xlsx + + + MI + ZDEMO_EXCEL9 + filename + + + MI + ZDEMO_EXCEL9 + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/zdemo_excel_checker.prog.abap b/src/demos/zdemo_excel_checker.prog.abap new file mode 100644 index 0000000..36df336 --- /dev/null +++ b/src/demos/zdemo_excel_checker.prog.abap @@ -0,0 +1,1384 @@ +*&---------------------------------------------------------------------* +*& Report zdemo_excel_checker +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT zdemo_excel_checker. + +CLASS lcl_zip_cleanup_for_diff DEFINITION + CREATE PUBLIC . + + PUBLIC SECTION. + + TYPES : BEGIN OF ty_zip_structure, + ref_to_structure TYPE REF TO data, + ref_to_x TYPE REF TO data, + length TYPE i, + view TYPE REF TO cl_abap_view_offlen, + charset_bit TYPE i, + conv_in_utf8 TYPE REF TO cl_abap_conv_in_ce, + conv_in_ibm437 TYPE REF TO cl_abap_conv_in_ce, + conv_out_utf8 TYPE REF TO cl_abap_conv_out_ce, + conv_out_ibm437 TYPE REF TO cl_abap_conv_out_ce, + END OF ty_zip_structure. + + METHODS run + IMPORTING + zip_xstring TYPE xstring + RETURNING + VALUE(result) TYPE xstring + RAISING + zcx_excel. + + PRIVATE SECTION. + + METHODS init_structure + IMPORTING + length TYPE i + charset_bit TYPE i + structure TYPE any + RETURNING + VALUE(result) TYPE ty_zip_structure. + + METHODS write_zip + IMPORTING + offset TYPE i + CHANGING + zip_structure TYPE ty_zip_structure + zip_xstring TYPE xstring. + + METHODS read_zip + IMPORTING + zip_xstring TYPE xstring + offset TYPE i + CHANGING + zip_structure TYPE ty_zip_structure. + +ENDCLASS. + + +CLASS lcl_xlsx_cleanup_for_diff DEFINITION + CREATE PUBLIC . + + PUBLIC SECTION. + + METHODS run + IMPORTING + xstring TYPE xstring + + RETURNING + VALUE(result) TYPE xstring + RAISING + zcx_excel. + +ENDCLASS. + + +CLASS lcl_app DEFINITION. + + PUBLIC SECTION. + + METHODS at_selection_screen. + + METHODS at_selection_screen_on_exit. + + METHODS at_selection_screen_output. + + METHODS set_sscrfields + CHANGING + sscrfields TYPE sscrfields. + + PRIVATE SECTION. + + TYPES : BEGIN OF ty_demo, + program TYPE trdir-name, + objid TYPE wwwdata-objid, + text TYPE wwwdata-text, + filename TYPE string, + END OF ty_demo, + ty_demos TYPE STANDARD TABLE OF ty_demo WITH DEFAULT KEY, + BEGIN OF ty_check_result, + diff TYPE abap_bool, + xlsx_just_now TYPE xstring, + xlsx_reference TYPE xstring, + compare_xlsx_just_now TYPE xstring, + compare_xlsx_reference TYPE xstring, + END OF ty_check_result, + BEGIN OF ty_alv_line, + status_icon TYPE string, + xlsx_diff TYPE string, + write_smw0 TYPE string, + objid TYPE wwwdata-objid, + obj_text TYPE wwwdata-text, + program TYPE trdir-name, + prog_text TYPE trdirt-text, + filename TYPE string, + xlsx_just_now TYPE xstring, + xlsx_reference TYPE xstring, + compare_xlsx_just_now TYPE xstring, + compare_xlsx_reference TYPE xstring, + cell_types TYPE salv_t_int4_column, + END OF ty_alv_line, + ty_alv_table TYPE STANDARD TABLE OF ty_alv_line WITH DEFAULT KEY, + ty_popup_confirm_question TYPE c LENGTH 400. + + METHODS at_selection_screen_output1000. + + METHODS at_selection_screen_output1001 + RAISING + zcx_excel + cx_salv_data_error + cx_salv_not_found + cx_salv_msg. + + METHODS check_regression + IMPORTING + demo TYPE ty_demo + RETURNING + VALUE(result) TYPE ty_check_result + RAISING + zcx_excel. + + METHODS get_list_of_demo_files + RETURNING + VALUE(result) TYPE ty_demos. + + METHODS gui_upload + IMPORTING + file_name TYPE string + RETURNING + VALUE(result) TYPE xstring + RAISING + zcx_excel. + + METHODS load_alv_table + RAISING + zcx_excel. + + METHODS on_link_clicked FOR EVENT link_click OF cl_salv_events_table IMPORTING column row. + + METHODS popup_confirm + IMPORTING + question TYPE ty_popup_confirm_question + RAISING + zcx_excel. + + METHODS read_screen_fields. + + METHODS read_xlsx_from_web_repository + IMPORTING + objid TYPE wwwdata-objid + RETURNING + VALUE(result) TYPE xstring + RAISING + zcx_excel. + + METHODS screen_1001_pbo_first_time + RAISING + cx_salv_data_error + cx_salv_msg + cx_salv_not_found + zcx_excel . + + METHODS write_screen_fields. + + METHODS write_xlsx_to_web_repository + IMPORTING + objid TYPE wwwdata-objid + text TYPE wwwdata-text + xstring TYPE xstring + filename TYPE clike + RAISING + zcx_excel. + + DATA: ref_sscrfields TYPE REF TO sscrfields, + p_path TYPE zexcel_export_dir, + splitter TYPE REF TO cl_gui_splitter_container, + alv_container TYPE REF TO cl_gui_container, + zip_diff_container TYPE REF TO cl_gui_container, + viewer TYPE REF TO object, + salv TYPE REF TO cl_salv_table, + alv_table TYPE ty_alv_table, + lv_filesep TYPE c LENGTH 1. + +ENDCLASS. + + + +CLASS lcl_zip_cleanup_for_diff IMPLEMENTATION. + + + METHOD run. + + TYPES : BEGIN OF ty_local_file_header, + local_file_header_signature TYPE x LENGTH 4, " 04034b50 + version_needed_to_extract TYPE x LENGTH 2, + general_purpose_bit_flag TYPE x LENGTH 2, + compression_method TYPE x LENGTH 2, + last_mod_file_time TYPE int2, + last_mod_file_date TYPE int2, + crc_32 TYPE x LENGTH 4, + compressed_size TYPE i, + uncompressed_size TYPE i, + file_name_length TYPE int2, + extra_field_length TYPE int2, + " file name (variable size) + " extra field (variable size) + END OF ty_local_file_header, + BEGIN OF ty_central_file_header, + central_file_header_signature TYPE x LENGTH 4, " 02014b50 + version_made_by TYPE x LENGTH 2, + version_needed_to_extract TYPE x LENGTH 2, + general_purpose_bit_flag TYPE x LENGTH 2, + compression_method TYPE x LENGTH 2, + last_mod_file_time TYPE int2, + last_mod_file_date TYPE int2, + crc_32 TYPE x LENGTH 4, + compressed_size TYPE i, + uncompressed_size TYPE i, + file_name_length TYPE int2, " field 12 + extra_field_length TYPE int2, " field 13 + file_comment_length TYPE int2, " field 14 + disk_number_start TYPE int2, + internal_file_attributes TYPE x LENGTH 2, + external_file_attributes TYPE x LENGTH 4, + rel_offset_of_local_header TYPE x LENGTH 4, + " file name (variable size defined in 12) + " extra field (variable size defined in 13) + " file comment (variable size defined in 14) + END OF ty_central_file_header, + BEGIN OF ty_end_of_central_dir, + signature TYPE x LENGTH 4, " 0x06054b50 + number_of_this_disk TYPE int2, + disk_num_start_of_central_dir TYPE int2, + n_of_entries_in_central_dir_dk TYPE int2, + n_of_entries_in_central_dir TYPE int2, + size_of_central_dir TYPE i, + offset_start_of_central_dir TYPE i, + file_comment_length TYPE int2, + END OF ty_end_of_central_dir. + + FIELD-SYMBOLS: + TYPE x, + TYPE x, + TYPE x, + TYPE ty_local_file_header, + TYPE ty_central_file_header, + TYPE ty_end_of_central_dir. + CONSTANTS: + local_file_header_signature TYPE x LENGTH 4 VALUE '504B0304', + central_file_header_signature TYPE x LENGTH 4 VALUE '504B0102', + end_of_central_dir_signature TYPE x LENGTH 4 VALUE '504B0506'. + DATA: + dummy_local_file_header TYPE ty_local_file_header, + dummy_central_file_header TYPE ty_central_file_header, + dummy_end_of_central_dir TYPE ty_end_of_central_dir, + local_file_header TYPE ty_zip_structure, + central_file_header TYPE ty_zip_structure, + end_of_central_dir TYPE ty_zip_structure, + offset TYPE i, + max_offset TYPE i. + + + + local_file_header = init_structure( length = 30 charset_bit = 60 structure = dummy_local_file_header ). + ASSIGN local_file_header-ref_to_structure->* TO . + ASSIGN local_file_header-ref_to_x->* TO . + + central_file_header = init_structure( length = 46 charset_bit = 76 structure = dummy_central_file_header ). + ASSIGN central_file_header-ref_to_structure->* TO . + ASSIGN central_file_header-ref_to_x->* TO . + + end_of_central_dir = init_structure( length = 22 charset_bit = 0 structure = dummy_end_of_central_dir ). + ASSIGN end_of_central_dir-ref_to_structure->* TO . + ASSIGN end_of_central_dir-ref_to_x->* TO . + + result = zip_xstring. + + offset = 0. + max_offset = xstrlen( result ) - 4. + WHILE offset <= max_offset. + + CASE result+offset(4). + + WHEN local_file_header_signature. + + read_zip( EXPORTING zip_xstring = result offset = offset CHANGING zip_structure = local_file_header ). + + CLEAR -last_mod_file_date. + CLEAR -last_mod_file_time. + + write_zip( EXPORTING offset = offset CHANGING zip_structure = local_file_header zip_xstring = result ). + + offset = offset + local_file_header-length + -file_name_length + -extra_field_length + -compressed_size. + + WHEN central_file_header_signature. + + read_zip( EXPORTING zip_xstring = result offset = offset CHANGING zip_structure = central_file_header ). + + CLEAR -last_mod_file_date. + CLEAR -last_mod_file_time. + + write_zip( EXPORTING offset = offset CHANGING zip_structure = central_file_header zip_xstring = result ). + + offset = offset + central_file_header-length + -file_name_length + -extra_field_length + -file_comment_length. + + WHEN end_of_central_dir_signature. + + read_zip( EXPORTING zip_xstring = result offset = offset CHANGING zip_structure = end_of_central_dir ). + + offset = offset + end_of_central_dir-length + -file_comment_length. + + WHEN OTHERS. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'Invalid ZIP file'. + + ENDCASE. + + ENDWHILE. + + ENDMETHOD. + + + METHOD init_structure. + + DATA: + offset TYPE i, + rtts_struct TYPE REF TO cl_abap_structdescr. + FIELD-SYMBOLS: + TYPE abap_compdescr. + + CREATE DATA result-ref_to_structure LIKE structure. + result-length = length. + result-charset_bit = charset_bit. + CREATE DATA result-ref_to_x TYPE x LENGTH length. + + result-view = cl_abap_view_offlen=>create( ). + offset = 0. + rtts_struct ?= cl_abap_typedescr=>describe_by_data( structure ). + LOOP AT rtts_struct->components ASSIGNING . + result-view->append( off = offset len = -length ). + offset = offset + -length. + ENDLOOP. + + ENDMETHOD. + + + METHOD read_zip. + + DATA: + charset TYPE i. + FIELD-SYMBOLS: + TYPE x, + TYPE any. + + ASSIGN zip_structure-ref_to_x->* TO . + ASSIGN zip_structure-ref_to_structure->* TO . + + = zip_xstring+offset. + + IF zip_structure-charset_bit >= 1. + GET BIT zip_structure-charset_bit OF INTO charset. + ENDIF. + + IF charset = 0. + IF zip_structure-conv_in_ibm437 IS NOT BOUND. + zip_structure-conv_in_ibm437 = cl_abap_conv_in_ce=>create( + encoding = '1107' + endian = 'L' ). + ENDIF. + zip_structure-conv_in_ibm437->convert_struc( + EXPORTING input = + view = zip_structure-view + IMPORTING data = ). + ELSE. + IF zip_structure-conv_in_utf8 IS NOT BOUND. + zip_structure-conv_in_utf8 = cl_abap_conv_in_ce=>create( + encoding = '4110' + endian = 'L' ). + ENDIF. + zip_structure-conv_in_utf8->convert_struc( + EXPORTING input = + view = zip_structure-view + IMPORTING data = ). + ENDIF. + + ENDMETHOD. + + + METHOD write_zip. + + DATA: + charset TYPE i. + FIELD-SYMBOLS: + TYPE x, + TYPE any. + + ASSIGN zip_structure-ref_to_x->* TO . + ASSIGN zip_structure-ref_to_structure->* TO . + + IF zip_structure-charset_bit >= 1. + GET BIT zip_structure-charset_bit OF INTO charset. + ENDIF. + + IF charset = 0. + IF zip_structure-conv_out_ibm437 IS NOT BOUND. + zip_structure-conv_out_ibm437 = cl_abap_conv_out_ce=>create( + encoding = '1107' + endian = 'L' ). + ENDIF. + zip_structure-conv_out_ibm437->convert_struc( + EXPORTING data = + view = zip_structure-view + IMPORTING buffer = ). + ELSE. + IF zip_structure-conv_out_utf8 IS NOT BOUND. + zip_structure-conv_out_utf8 = cl_abap_conv_out_ce=>create( + encoding = '4110' + endian = 'L' ). + ENDIF. + zip_structure-conv_out_utf8->convert_struc( + EXPORTING data = + view = zip_structure-view + IMPORTING buffer = ). + ENDIF. + + REPLACE SECTION OFFSET offset LENGTH zip_structure-length OF zip_xstring WITH IN BYTE MODE. + + ENDMETHOD. + + +ENDCLASS. + + +CLASS lcl_xlsx_cleanup_for_diff IMPLEMENTATION. + + METHOD run. + + TYPES: BEGIN OF ty_docprops_core, + creator TYPE string, + description TYPE string, + last_modified_by TYPE string, + created TYPE string, + modified TYPE string, + END OF ty_docprops_core. + TYPES: BEGIN OF ty_file, + name TYPE string, + content TYPE xstring, + END OF ty_file. + DATA: zip TYPE REF TO cl_abap_zip, + content TYPE xstring, + docprops_core TYPE ty_docprops_core, + ls_file TYPE ty_file, + lt_file TYPE TABLE OF ty_file, + lo_ixml TYPE REF TO if_ixml, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_istream TYPE REF TO if_ixml_istream, + lo_parser TYPE REF TO if_ixml_parser, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_document TYPE REF TO if_ixml_document, + lo_element TYPE REF TO if_ixml_element, + lo_filter TYPE REF TO if_ixml_node_filter, + lo_iterator TYPE REF TO if_ixml_node_iterator, + zip_cleanup_for_diff TYPE REF TO lcl_zip_cleanup_for_diff. + FIELD-SYMBOLS: + TYPE cl_abap_zip=>t_file, + TYPE ty_file. + + CREATE OBJECT zip. + zip->load( + EXPORTING + zip = xstring + EXCEPTIONS + zip_parse_error = 1 + OTHERS = 2 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'zip load'. + ENDIF. + + zip->get( + EXPORTING + name = 'docProps/core.xml' + IMPORTING + content = content + EXCEPTIONS + zip_index_error = 1 + zip_decompression_error = 2 + OTHERS = 3 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'docProps/core.xml not found'. + ENDIF. + + CALL TRANSFORMATION zexcel_tr_docprops_core SOURCE XML content RESULT root = docprops_core. + + CLEAR: docprops_core-creator, + docprops_core-description, + docprops_core-created, + docprops_core-modified. + + CALL TRANSFORMATION zexcel_tr_docprops_core SOURCE root = docprops_core RESULT XML content. + + zip->delete( + EXPORTING + name = 'docProps/core.xml' + EXCEPTIONS + zip_index_error = 1 + OTHERS = 2 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |delete before add of docProps/core.xml|. + ENDIF. + + zip->add( + name = 'docProps/core.xml' + content = content ). + + LOOP AT zip->files ASSIGNING + WHERE name CP 'xl/drawings/drawing*.xml'. + + zip->get( + EXPORTING + name = -name + IMPORTING + content = content + EXCEPTIONS + zip_index_error = 1 + zip_decompression_error = 2 + OTHERS = 3 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |{ -name } not found|. + ENDIF. + + lo_ixml = cl_ixml=>create( ). + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_istream = lo_streamfactory->create_istream_xstring( content ). + lo_document = lo_ixml->create_document( ). + lo_parser = lo_ixml->create_parser( + document = lo_document + istream = lo_istream + stream_factory = lo_streamfactory ). + lo_parser->parse( ). + + lo_filter = lo_document->create_filter_name_ns( + name = 'cNvPr' + namespace = 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing' ). + lo_iterator = lo_document->create_iterator_filtered( lo_filter ). + DO. + lo_element ?= lo_iterator->get_next( ). + IF lo_element IS NOT BOUND. + EXIT. + ENDIF. + lo_element->set_attribute_ns( name = 'name' value = '' ). + ENDDO. + + CLEAR content. + lo_ostream = lo_streamfactory->create_ostream_xstring( content ). + lo_renderer = lo_ixml->create_renderer( + document = lo_document + ostream = lo_ostream ). + lo_renderer->render( ). + + ls_file-name = -name. + ls_file-content = content. + APPEND ls_file TO lt_file. + + ENDLOOP. + + LOOP AT lt_file ASSIGNING . + zip->delete( name = -name ). + zip->add( name = -name content = -content ). + ENDLOOP. + + result = zip->save( ). + + CREATE OBJECT zip_cleanup_for_diff. + result = zip_cleanup_for_diff->run( result ). + + ENDMETHOD. + + +ENDCLASS. + + +CLASS lcl_app IMPLEMENTATION. + + + METHOD at_selection_screen. + + DATA: error TYPE REF TO cx_root. + + TRY. + + CASE sy-dynnr. + + WHEN 1000. + + CASE ref_sscrfields->ucomm. + + WHEN 'ONLI'. + + read_screen_fields( ). + SUBMIT zdemo_excel WITH p_path = p_path WITH p_checkr = abap_true AND RETURN. + CALL SELECTION-SCREEN 1001. + + ENDCASE. + + WHEN 1001. + + CASE ref_sscrfields->ucomm. + + WHEN 'FC01'. " REFRESH + + SUBMIT (sy-repid) WITH p_path = p_path. + + ENDCASE. + ENDCASE. + + CATCH cx_root INTO error. + MESSAGE error TYPE 'E'. + ENDTRY. + + ENDMETHOD. + + + METHOD at_selection_screen_on_exit. + + CASE sy-dynnr. + + WHEN 1001. + + CALL SELECTION-SCREEN 1000. + + ENDCASE. + + ENDMETHOD. + + + METHOD at_selection_screen_output. + + DATA: error TYPE REF TO cx_root. + + TRY. + + CASE sy-dynnr. + + WHEN 1000. + + at_selection_screen_output1000( ). + + WHEN 1001. + + at_selection_screen_output1001( ). + + ENDCASE. + + CATCH cx_root INTO error. + MESSAGE error TYPE 'I' DISPLAY LIKE 'E'. + ENDTRY. + + ENDMETHOD. + + + METHOD at_selection_screen_output1000. + + DATA: lv_workdir TYPE string. + + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_filesep ). + + IF p_path IS INITIAL. + + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + + ENDIF. + + write_screen_fields( ). + + ENDMETHOD. + + + METHOD at_selection_screen_output1001. + + DATA: excluded_functions TYPE ui_functions. + + LOOP AT SCREEN. + screen-active = '0'. + MODIFY SCREEN. + ENDLOOP. + + ref_sscrfields->functxt_01 = icon_refresh. + + APPEND 'ONLI' TO excluded_functions. + APPEND 'PRIN' TO excluded_functions. + APPEND 'SPOS' TO excluded_functions. + CALL FUNCTION 'RS_SET_SELSCREEN_STATUS' + EXPORTING + p_status = sy-pfkey + TABLES + p_exclude = excluded_functions. + + load_alv_table( ). + + IF alv_container IS NOT BOUND. + + screen_1001_pbo_first_time( ). + + ENDIF. + + ENDMETHOD. + + + METHOD check_regression. + + DATA: xlsx_cleanup_for_diff TYPE REF TO lcl_xlsx_cleanup_for_diff. + + + result-xlsx_just_now = gui_upload( file_name = p_path && lv_filesep && demo-filename ). + + result-xlsx_reference = read_xlsx_from_web_repository( objid = demo-objid ). + + IF result-xlsx_reference IS INITIAL. + + result-diff = abap_true. + + ELSE. + + CREATE OBJECT xlsx_cleanup_for_diff. + result-compare_xlsx_just_now = xlsx_cleanup_for_diff->run( result-xlsx_just_now ). + result-compare_xlsx_reference = xlsx_cleanup_for_diff->run( result-xlsx_reference ). + + result-diff = boolc( result-compare_xlsx_just_now <> result-compare_xlsx_reference ). + + ENDIF. + + ENDMETHOD. + + + METHOD get_list_of_demo_files. + + DATA: line TYPE ty_demo. + + line-program = 'ZDEMO_EXCEL1'. + line-objid = 'ZDEMO_EXCEL1'. + line-filename = '01_HelloWorld.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL2'. + line-objid = 'ZDEMO_EXCEL2'. + line-filename = '02_Styles.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL3'. + line-objid = 'ZDEMO_EXCEL3'. + line-filename = '03_iTab.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL4'. + line-objid = 'ZDEMO_EXCEL4'. + line-filename = '04_Sheets.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL5'. + line-objid = 'ZDEMO_EXCEL5'. + line-filename = '05_Conditional.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL6'. + line-objid = 'ZDEMO_EXCEL6'. + line-filename = '06_Formulas.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL7'. + line-objid = 'ZDEMO_EXCEL7'. + line-filename = '07_ConditionalAll.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL8'. + line-objid = 'ZDEMO_EXCEL8'. + line-filename = '08_Range.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL9'. + line-objid = 'ZDEMO_EXCEL9'. + line-filename = '09_DataValidation.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL10'. + line-objid = 'ZDEMO_EXCEL10'. + line-filename = '10_iTabFieldCatalog.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL12'. + line-objid = 'ZDEMO_EXCEL12'. + line-filename = '12_HideSizeOutlineRowsAndColumns.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL13'. + line-objid = 'ZDEMO_EXCEL13'. + line-filename = '13_MergedCells.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL14'. + line-objid = 'ZDEMO_EXCEL14'. + line-filename = '14_Alignment.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL16'. + line-objid = 'ZDEMO_EXCEL16'. + line-filename = '16_Drawings.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL17'. + line-objid = 'ZDEMO_EXCEL17'. + line-filename = '17_SheetProtection.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL18'. + line-objid = 'ZDEMO_EXCEL18'. + line-filename = '18_BookProtection.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL19'. + line-objid = 'ZDEMO_EXCEL19'. + line-filename = '19_SetActiveSheet.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL21'. + line-objid = 'ZDEMO_EXCEL21'. + line-filename = '21_BackgroundColorPicker.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL22'. + line-objid = 'ZDEMO_EXCEL22'. + line-filename = '22_itab_fieldcatalog.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL23'. + line-objid = 'ZDEMO_EXCEL23'. + line-filename = '23_Sheets_with_and_without_grid_lines.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL24'. + line-objid = 'ZDEMO_EXCEL24'. + line-filename = '24_Sheets_with_different_default_date_formats.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL27'. + line-objid = 'ZDEMO_EXCEL27'. + line-filename = '27_ConditionalFormatting.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL30'. + line-objid = 'ZDEMO_EXCEL30'. + line-filename = '30_CellDataTypes.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL31'. + line-objid = 'ZDEMO_EXCEL31'. + line-filename = '31_AutosizeWithDifferentFontSizes.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL33'. + line-objid = 'ZDEMO_EXCEL33'. + line-filename = '33_autofilter.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL34'. + line-objid = 'ZDEMO_EXCEL34'. + line-filename = '34_Static Styles_Chess.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL35'. + line-objid = 'ZDEMO_EXCEL35'. + line-filename = '35_Static_Styles.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL36'. + line-objid = 'ZDEMO_EXCEL36'. + line-filename = '36_DefaultStyles.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL37'. + line-objid = 'ZDEMO_EXCEL37'. + line-filename = '37- Read template and output.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL38'. + line-objid = 'ZDEMO_EXCEL38'. + line-filename = '38_SAP-Icons.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL39'. + line-objid = 'ZDEMO_EXCEL39'. + line-filename = '39_Charts.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL40'. + line-objid = 'ZDEMO_EXCEL40'. + line-filename = '40_Printsettings.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL41'. + line-objid = 'ZDEMO_EXCEL41'. + line-filename = 'ABAP2XLSX Inheritance.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL_COMMENTS'. + line-objid = 'ZDEMO_EXCEL_COMMENTS'. + line-filename = 'Comments.xlsx'. + APPEND line TO result. + line-program = 'ZTEST_EXCEL_IMAGE_HEADER'. + line-objid = 'ZTEST_EXCEL_IMAGE_HEADER'. + line-filename = 'Image_Header_Footer.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_01'. + line-filename = '15_01_HelloWorldFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_02'. + line-filename = '15_02_StylesFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_03'. + line-filename = '15_03_iTabFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_04'. + line-filename = '15_04_SheetsFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_05'. + line-filename = '15_05_ConditionalFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_07'. + line-filename = '15_07_ConditionalAllFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_08'. + line-filename = '15_08_RangeFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_13'. + line-filename = '15_13_MergedCellsFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_24'. + line-filename = '15_24_Sheets_with_different_default_date_formatsFromReader.xlsx'. + APPEND line TO result. + line-program = 'ZDEMO_EXCEL15'. + line-objid = 'ZDEMO_EXCEL15_31'. + line-filename = '15_31_AutosizeWithDifferentFontSizesFromReader.xlsx'. + APPEND line TO result. + + ENDMETHOD. + + + METHOD gui_upload. + + DATA: solix_tab TYPE solix_tab, + file_length TYPE i. + + cl_gui_frontend_services=>gui_upload( + EXPORTING + filename = file_name + filetype = 'BIN' + IMPORTING + filelength = file_length + CHANGING + data_tab = solix_tab + EXCEPTIONS + file_open_error = 1 + file_read_error = 2 + no_batch = 3 + gui_refuse_filetransfer = 4 + invalid_type = 5 + no_authority = 6 + unknown_error = 7 + bad_data_format = 8 + header_not_allowed = 9 + separator_not_allowed = 10 + header_too_long = 11 + unknown_dp_error = 12 + access_denied = 13 + dp_out_of_memory = 14 + disk_full = 15 + dp_timeout = 16 + not_supported_by_gui = 17 + error_no_gui = 18 + OTHERS = 19 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |gui_upload error { file_name }|. + ENDIF. + + result = cl_bcs_convert=>solix_to_xstring( it_solix = solix_tab iv_size = file_length ). + + ENDMETHOD. + + + METHOD load_alv_table. + + DATA: demos TYPE ty_demos, + alv_line TYPE ty_alv_line, + cell_type TYPE salv_s_int4_column, + error TYPE REF TO cx_root, + check_result TYPE ty_check_result. + FIELD-SYMBOLS: + TYPE ty_demo. + + CLEAR alv_table. + + demos = get_list_of_demo_files( ). + LOOP AT demos ASSIGNING . + + TRY. + + CLEAR alv_line. + alv_line-objid = -objid. + alv_line-obj_text = |{ -filename } ({ -program })|. + alv_line-filename = -filename. + alv_line-program = -program. + SELECT SINGLE text FROM trdirt INTO alv_line-prog_text + WHERE sprsl = sy-langu + AND name = alv_line-program. + + check_result = check_regression( ). + + CASE check_result-diff. + WHEN abap_true. + alv_line-status_icon = '@0W\QFiles are different@'. + WHEN abap_false. + alv_line-status_icon = '@0V\QFiles are identical@'. + ENDCASE. + IF check_result-diff = abap_true. + alv_line-xlsx_diff = '@46\QShow differences@'. + alv_line-write_smw0 = '@2L\QSave XLSX to Web Repository@'. + cell_type-columnname = 'XLSX_DIFF'. + cell_type-value = if_salv_c_cell_type=>hotspot. + APPEND cell_type TO alv_line-cell_types. + cell_type-columnname = 'WRITE_SMW0'. + cell_type-value = if_salv_c_cell_type=>hotspot. + APPEND cell_type TO alv_line-cell_types. + ENDIF. + alv_line-xlsx_just_now = check_result-xlsx_just_now. + alv_line-xlsx_reference = check_result-xlsx_reference. + alv_line-compare_xlsx_just_now = check_result-compare_xlsx_just_now. + alv_line-compare_xlsx_reference = check_result-compare_xlsx_reference. + APPEND alv_line TO alv_table. + + CATCH cx_root INTO error. + alv_line-status_icon = |{ icon_cancel }{ error->get_text( ) }|. + ENDTRY. + + ENDLOOP. + + ENDMETHOD. + + + METHOD on_link_clicked. + + DATA: alv_line TYPE ty_alv_line, + error TYPE REF TO cx_root, + zip_old TYPE REF TO cl_abap_zip, + zip_new TYPE REF TO cl_abap_zip, + refresh_stable TYPE lvc_s_stbl, + question TYPE ty_popup_confirm_question. + + TRY. + + READ TABLE alv_table INDEX row INTO alv_line. + ASSERT sy-subrc = 0. + + CASE column. + + WHEN 'XLSX_DIFF'. + + TRY. + IF viewer IS NOT BOUND. + CREATE OBJECT viewer TYPE ('ZCL_ZIP_DIFF_VIEWER2') + EXPORTING + io_container = zip_diff_container. + ENDIF. + + CREATE OBJECT zip_old. + zip_old->load( + EXPORTING + zip = alv_line-compare_xlsx_reference + EXCEPTIONS + zip_parse_error = 1 + OTHERS = 2 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |zip load old { alv_line-obj_text }|. + ENDIF. + + CREATE OBJECT zip_new. + zip_new->load( + EXPORTING + zip = alv_line-compare_xlsx_just_now + EXCEPTIONS + zip_parse_error = 1 + OTHERS = 2 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |zip load new { alv_line-filename }|. + ENDIF. + + CALL METHOD viewer->('DIFF_AND_VIEW') + EXPORTING + zip_old = zip_old + zip_new = zip_new. + + CATCH cx_root INTO error. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |Viewer error (https://github.com/sandraros/zip-diff): { error->get_text( ) }|. + ENDTRY. + + WHEN 'WRITE_SMW0'. + + question = |Are you sure you want to overwrite { alv_line-objid } in Web repository?|. + popup_confirm( question ). + + write_xlsx_to_web_repository( + objid = alv_line-objid + text = alv_line-obj_text + xstring = alv_line-xlsx_just_now + filename = alv_line-filename ). + COMMIT WORK. + + alv_line-status_icon = icon_okay. + CLEAR alv_line-xlsx_diff. + CLEAR alv_line-write_smw0. + CLEAR alv_line-cell_types. + MODIFY alv_table INDEX row FROM alv_line. + + refresh_stable-row = abap_true. + refresh_stable-col = abap_true. + salv->refresh( s_stable = refresh_stable ). + + ENDCASE. + + CATCH cx_root INTO error. + MESSAGE error TYPE 'I' DISPLAY LIKE 'E'. + ENDTRY. + + ENDMETHOD. + + + METHOD popup_confirm. + + DATA: l_answer TYPE c LENGTH 1. + + CALL FUNCTION 'POPUP_TO_CONFIRM' + EXPORTING + text_question = question + IMPORTING + answer = l_answer. "1 = button 1, 2 = button 2, A = cancel + CASE l_answer. + WHEN '2' OR 'A'. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'Action cancelled by user'. + ENDCASE. + + ENDMETHOD. + + + METHOD read_xlsx_from_web_repository. + + DATA: query_string TYPE w3query, + query_table TYPE TABLE OF w3query, + html_table TYPE TABLE OF w3html, + return_code TYPE w3param-ret_code, + content_type TYPE w3param-cont_type, + content_length TYPE w3param-cont_len, + mime_table TYPE TABLE OF w3mime. + + CLEAR: query_table, query_string. + query_string-name = '_OBJECT_ID'. + query_string-value = objid. + APPEND query_string TO query_table. + + CALL FUNCTION 'WWW_GET_MIME_OBJECT' + TABLES + query_string = query_table + html = html_table + mime = mime_table + CHANGING + return_code = return_code + content_type = content_type + content_length = content_length + EXCEPTIONS + object_not_found = 1 + parameter_not_found = 2 + OTHERS = 3. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'WWW_GET_MIME_OBJECT'. + ENDIF. + + result = cl_bcs_convert=>solix_to_xstring( it_solix = mime_table iv_size = content_length ). + + ENDMETHOD. + + + METHOD read_screen_fields. + + DATA: lt_dummy TYPE TABLE OF rsparams, + lt_sel_255 TYPE TABLE OF rsparamsl_255. + FIELD-SYMBOLS: + TYPE rsparamsl_255. + + CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS' + EXPORTING + curr_report = sy-repid + TABLES + selection_table = lt_dummy + selection_table_255 = lt_sel_255 + EXCEPTIONS + not_found = 1 + no_report = 2 + OTHERS = 3. + + READ TABLE lt_sel_255 WITH KEY selname = 'P_PATH' ASSIGNING . + ASSERT sy-subrc = 0. + p_path = -low. + + ENDMETHOD. + + + METHOD screen_1001_pbo_first_time. + + DATA: columns TYPE REF TO cl_salv_columns_table, + events TYPE REF TO cl_salv_events_table. + + CREATE OBJECT splitter + EXPORTING + parent = cl_gui_container=>screen0 + rows = 1 + columns = 2 + EXCEPTIONS + cntl_error = 1 + cntl_system_error = 2 + OTHERS = 3. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'create splitter'. + ENDIF. + + alv_container = splitter->get_container( row = 1 column = 1 ). + zip_diff_container = splitter->get_container( row = 1 column = 2 ). + + cl_salv_table=>factory( + EXPORTING + r_container = alv_container + IMPORTING + r_salv_table = salv + CHANGING + t_table = alv_table ). + + columns = salv->get_columns( ). + columns->set_cell_type_column( value = 'CELL_TYPES' ). + columns->get_column( 'STATUS_ICON' )->set_medium_text( 'Diff status' ). + columns->get_column( 'STATUS_ICON' )->set_output_length( 2 ). + columns->get_column( 'XLSX_DIFF' )->set_medium_text( 'View diff' ). + columns->get_column( 'XLSX_DIFF' )->set_output_length( 5 ). + columns->get_column( 'XLSX_DIFF' )->set_alignment( if_salv_c_alignment=>centered ). + columns->get_column( 'WRITE_SMW0' )->set_medium_text( 'Web repository' ). + columns->get_column( 'WRITE_SMW0' )->set_output_length( 5 ). + columns->get_column( 'WRITE_SMW0' )->set_alignment( if_salv_c_alignment=>centered ). + columns->get_column( 'PROGRAM' )->set_output_length( 15 ). + columns->get_column( 'PROG_TEXT' )->set_output_length( 30 ). + columns->get_column( 'OBJID' )->set_output_length( 20 ). + columns->get_column( 'OBJ_TEXT' )->set_output_length( 50 ). + columns->get_column( 'FILENAME' )->set_output_length( 50 ). + columns->get_column( 'XLSX_JUST_NOW' )->set_technical( ). + columns->get_column( 'XLSX_REFERENCE' )->set_technical( ). +columns->get_column( 'COMPARE_XLSX_JUST_NOW' )->set_technical( ). +columns->get_column( 'COMPARE_XLSX_REFERENCE' )->set_technical( ). + + events = salv->get_event( ). + SET HANDLER on_link_clicked FOR events. + + salv->display( ). + + ENDMETHOD. + + + METHOD set_sscrfields. + + GET REFERENCE OF sscrfields INTO ref_sscrfields. + + ENDMETHOD. + + + METHOD write_screen_fields. + + DATA: fieldname TYPE string. + FIELD-SYMBOLS: + TYPE simple. + + fieldname = |({ sy-repid })P_PATH|. + ASSIGN (fieldname) TO . + = p_path. + + ENDMETHOD. + + + METHOD write_xlsx_to_web_repository. + + DATA: key TYPE wwwdatatab, + mime TYPE TABLE OF w3mime, + devclass TYPE devclass, + wwwparam TYPE wwwparams, + table_of_wwwparams TYPE TABLE OF wwwparams. + + SELECT SINGLE devclass FROM tadir + INTO devclass + WHERE pgmid = 'R3TR' + AND object = 'W3MI' + AND obj_name = objid. + + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |Object must be first created manually|. + ENDIF. + + mime = cl_bcs_convert=>xstring_to_solix( xstring ). + key-relid = 'MI'. + key-objid = objid. + key-chname = sy-uname. + key-text = text. + key-tdate = sy-datum. + key-ttime = sy-uzeit. + + CALL FUNCTION 'WWWDATA_EXPORT' + EXPORTING + key = key + TABLES + mime = mime + EXCEPTIONS + wrong_object_type = 1 + export_error = 2 + OTHERS = 3. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'WWWDATA_EXPORT'. + ENDIF. + + wwwparam-relid = 'MI'. + wwwparam-objid = objid. + wwwparam-name = 'mimetype'. + wwwparam-value = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'. + APPEND wwwparam TO table_of_wwwparams. + wwwparam-name = 'filename'. + wwwparam-value = filename. + APPEND wwwparam TO table_of_wwwparams. + wwwparam-name = 'filesize'. + wwwparam-value = |{ xstrlen( xstring ) }|. + APPEND wwwparam TO table_of_wwwparams. + wwwparam-name = 'version'. + wwwparam-value = |00001|. + APPEND wwwparam TO table_of_wwwparams. + wwwparam-name = 'fileextension'. + wwwparam-value = |.xlsx|. + APPEND wwwparam TO table_of_wwwparams. + + CALL FUNCTION 'WWWPARAMS_UPDATE' + TABLES + params = table_of_wwwparams + EXCEPTIONS + update_error = 1 + OTHERS = 2. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel EXPORTING error = |WWWPARAMS_UPDATE { objid } { filename }|. + ENDIF. + + ENDMETHOD. + + +ENDCLASS. + + + +TABLES sscrfields. +DATA: app TYPE REF TO lcl_app. + +PARAMETERS p_path TYPE zexcel_export_dir. + +SELECTION-SCREEN BEGIN OF SCREEN 1001. +SELECTION-SCREEN FUNCTION KEY 1. +PARAMETERS dummy. +SELECTION-SCREEN END OF SCREEN 1001. + +INITIALIZATION. + CREATE OBJECT app. + app->set_sscrfields( CHANGING sscrfields = sscrfields ). + +AT SELECTION-SCREEN OUTPUT. + app->at_selection_screen_output( ). + +AT SELECTION-SCREEN. + app->at_selection_screen( ). + +AT SELECTION-SCREEN ON EXIT-COMMAND. + app->at_selection_screen_on_exit( ). diff --git a/src/demos/zdemo_excel_checker.prog.xml b/src/demos/zdemo_excel_checker.prog.xml new file mode 100644 index 0000000..468a47c --- /dev/null +++ b/src/demos/zdemo_excel_checker.prog.xml @@ -0,0 +1,22 @@ + + + + + + ZDEMO_EXCEL_CHECKER + S + 1 + X + D$S + X + + + + R + abap2xlsx demos: check for regressions + 38 + + + + + diff --git a/src/demos/zdemo_excel_comments.prog.abap b/src/demos/zdemo_excel_comments.prog.abap index 4835f70..61de791 100644 --- a/src/demos/zdemo_excel_comments.prog.abap +++ b/src/demos/zdemo_excel_comments.prog.abap @@ -23,11 +23,6 @@ START-OF-SELECTION. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). - lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ). " Comments lo_comment = lo_excel->add_new_comment( ). @@ -42,15 +37,6 @@ START-OF-SELECTION. " Second sheet lo_worksheet = lo_excel->add_new_worksheet( ). - lo_worksheet->set_default_excel_date_format( zcl_excel_style_number_format=>c_format_date_yyyymmdd ). - lo_worksheet->set_title( ip_title = 'Sheet2' ). - lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Date Format set to YYYYMMDD' ). - " Insert current date - lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). - lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). - - lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet3!B2' ). - lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is link to the third sheet' ip_hyperlink = lo_hyperlink ). lo_comment = lo_excel->add_new_comment( ). lo_comment->set_text( ip_ref = 'A8' ip_text = 'What about a comment on second sheet?' ). diff --git a/src/demos/zdemo_excel_comments.w3mi.data.xlsx b/src/demos/zdemo_excel_comments.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5a09a1addb5198c60009b736b79ac06782a6a86a GIT binary patch literal 8911 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

    wbTDkmZ* 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 + + + + ZDEMO_EXCEL_COMMENTS + Comments.xlsx (ZDEMO_EXCEL_COMMENTS) + + + MI + ZDEMO_EXCEL_COMMENTS + fileextension + .xlsx + + + MI + ZDEMO_EXCEL_COMMENTS + filename + + + MI + ZDEMO_EXCEL_COMMENTS + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/demos/ztest_excel_image_header.prog.abap b/src/demos/ztest_excel_image_header.prog.abap index ec86bb2..4214c15 100644 --- a/src/demos/ztest_excel_image_header.prog.abap +++ b/src/demos/ztest_excel_image_header.prog.abap @@ -82,8 +82,7 @@ START-OF-SELECTION. lo_worksheet = lo_excel->add_new_worksheet( 'Sheet2' ). " Add some content otherwise the error "nothing to be printed" is shown - lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'Hello world' ). ********************************************************************** *** Header Left diff --git a/src/demos/ztest_excel_image_header.w3mi.data.xlsx b/src/demos/ztest_excel_image_header.w3mi.data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4fc52b4217d83b9b9e424e2d93160eefdbb99dc5 GIT binary patch literal 15698 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 + + + + ZTEST_EXCEL_IMAGE_HEADER + Image_Header_Footer.xlsx (ZTEST_EXCEL_IMAGE_HEADER) + + + MI + ZTEST_EXCEL_IMAGE_HEADER + fileextension + .xlsx + + + MI + ZTEST_EXCEL_IMAGE_HEADER + filename + + + MI + ZTEST_EXCEL_IMAGE_HEADER + mimetype + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + + + diff --git a/src/zexcel_tr_docprops_core.xslt.source.xml b/src/zexcel_tr_docprops_core.xslt.source.xml new file mode 100644 index 0000000..674d63a --- /dev/null +++ b/src/zexcel_tr_docprops_core.xslt.source.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/zexcel_tr_docprops_core.xslt.xml b/src/zexcel_tr_docprops_core.xslt.xml new file mode 100644 index 0000000..0cb8203 --- /dev/null +++ b/src/zexcel_tr_docprops_core.xslt.xml @@ -0,0 +1,12 @@ + + + + + + ZEXCEL_TR_DOCPROPS_CORE + E + docProps/core.xml + + + + From 38160bc78105297bed75e805d08ac9dcd24e2e43 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 5 Jan 2022 21:19:14 +0100 Subject: [PATCH 2/4] move converter classes to not_cloud package (#951) * move converter classes to not_cloud package * STRINGVAL to STRING * fix whitespace * fix SYBATCH Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> --- src/demos/zdemo_excel6.prog.abap | 2 +- src/{ => not_cloud}/zcl_excel_converter.clas.abap | 0 src/{ => not_cloud}/zcl_excel_converter.clas.locals_def.abap | 0 src/{ => not_cloud}/zcl_excel_converter.clas.xml | 0 src/{ => not_cloud}/zcl_excel_converter_alv.clas.abap | 0 .../zcl_excel_converter_alv.clas.locals_def.abap | 0 src/{ => not_cloud}/zcl_excel_converter_alv.clas.xml | 0 src/{ => not_cloud}/zcl_excel_converter_alv_grid.clas.abap | 0 src/{ => not_cloud}/zcl_excel_converter_alv_grid.clas.xml | 0 src/{ => not_cloud}/zcl_excel_converter_result.clas.abap | 0 src/{ => not_cloud}/zcl_excel_converter_result.clas.xml | 0 src/{ => not_cloud}/zcl_excel_converter_result_ex.clas.abap | 0 src/{ => not_cloud}/zcl_excel_converter_result_ex.clas.xml | 0 src/{ => not_cloud}/zcl_excel_converter_result_wd.clas.abap | 0 src/{ => not_cloud}/zcl_excel_converter_result_wd.clas.xml | 0 src/{ => not_cloud}/zcl_excel_converter_salv_table.clas.abap | 0 src/{ => not_cloud}/zcl_excel_converter_salv_table.clas.xml | 0 src/zcl_excel.clas.abap | 2 +- src/zcl_excel_sheet_setup.clas.abap | 4 ++-- src/zif_excel_reader.intf.abap | 2 +- 20 files changed, 5 insertions(+), 5 deletions(-) rename src/{ => not_cloud}/zcl_excel_converter.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter.clas.locals_def.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter.clas.xml (100%) rename src/{ => not_cloud}/zcl_excel_converter_alv.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_alv.clas.locals_def.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_alv.clas.xml (100%) rename src/{ => not_cloud}/zcl_excel_converter_alv_grid.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_alv_grid.clas.xml (100%) rename src/{ => not_cloud}/zcl_excel_converter_result.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_result.clas.xml (100%) rename src/{ => not_cloud}/zcl_excel_converter_result_ex.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_result_ex.clas.xml (100%) rename src/{ => not_cloud}/zcl_excel_converter_result_wd.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_result_wd.clas.xml (100%) rename src/{ => not_cloud}/zcl_excel_converter_salv_table.clas.abap (100%) rename src/{ => not_cloud}/zcl_excel_converter_salv_table.clas.xml (100%) diff --git a/src/demos/zdemo_excel6.prog.abap b/src/demos/zdemo_excel6.prog.abap index e06ac54..9486b56 100644 --- a/src/demos/zdemo_excel6.prog.abap +++ b/src/demos/zdemo_excel6.prog.abap @@ -10,7 +10,7 @@ REPORT zdemo_excel6. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lv_row TYPE syindex, + lv_row TYPE i, lv_formula TYPE string. diff --git a/src/zcl_excel_converter.clas.abap b/src/not_cloud/zcl_excel_converter.clas.abap similarity index 100% rename from src/zcl_excel_converter.clas.abap rename to src/not_cloud/zcl_excel_converter.clas.abap diff --git a/src/zcl_excel_converter.clas.locals_def.abap b/src/not_cloud/zcl_excel_converter.clas.locals_def.abap similarity index 100% rename from src/zcl_excel_converter.clas.locals_def.abap rename to src/not_cloud/zcl_excel_converter.clas.locals_def.abap diff --git a/src/zcl_excel_converter.clas.xml b/src/not_cloud/zcl_excel_converter.clas.xml similarity index 100% rename from src/zcl_excel_converter.clas.xml rename to src/not_cloud/zcl_excel_converter.clas.xml diff --git a/src/zcl_excel_converter_alv.clas.abap b/src/not_cloud/zcl_excel_converter_alv.clas.abap similarity index 100% rename from src/zcl_excel_converter_alv.clas.abap rename to src/not_cloud/zcl_excel_converter_alv.clas.abap diff --git a/src/zcl_excel_converter_alv.clas.locals_def.abap b/src/not_cloud/zcl_excel_converter_alv.clas.locals_def.abap similarity index 100% rename from src/zcl_excel_converter_alv.clas.locals_def.abap rename to src/not_cloud/zcl_excel_converter_alv.clas.locals_def.abap diff --git a/src/zcl_excel_converter_alv.clas.xml b/src/not_cloud/zcl_excel_converter_alv.clas.xml similarity index 100% rename from src/zcl_excel_converter_alv.clas.xml rename to src/not_cloud/zcl_excel_converter_alv.clas.xml diff --git a/src/zcl_excel_converter_alv_grid.clas.abap b/src/not_cloud/zcl_excel_converter_alv_grid.clas.abap similarity index 100% rename from src/zcl_excel_converter_alv_grid.clas.abap rename to src/not_cloud/zcl_excel_converter_alv_grid.clas.abap diff --git a/src/zcl_excel_converter_alv_grid.clas.xml b/src/not_cloud/zcl_excel_converter_alv_grid.clas.xml similarity index 100% rename from src/zcl_excel_converter_alv_grid.clas.xml rename to src/not_cloud/zcl_excel_converter_alv_grid.clas.xml diff --git a/src/zcl_excel_converter_result.clas.abap b/src/not_cloud/zcl_excel_converter_result.clas.abap similarity index 100% rename from src/zcl_excel_converter_result.clas.abap rename to src/not_cloud/zcl_excel_converter_result.clas.abap diff --git a/src/zcl_excel_converter_result.clas.xml b/src/not_cloud/zcl_excel_converter_result.clas.xml similarity index 100% rename from src/zcl_excel_converter_result.clas.xml rename to src/not_cloud/zcl_excel_converter_result.clas.xml diff --git a/src/zcl_excel_converter_result_ex.clas.abap b/src/not_cloud/zcl_excel_converter_result_ex.clas.abap similarity index 100% rename from src/zcl_excel_converter_result_ex.clas.abap rename to src/not_cloud/zcl_excel_converter_result_ex.clas.abap diff --git a/src/zcl_excel_converter_result_ex.clas.xml b/src/not_cloud/zcl_excel_converter_result_ex.clas.xml similarity index 100% rename from src/zcl_excel_converter_result_ex.clas.xml rename to src/not_cloud/zcl_excel_converter_result_ex.clas.xml diff --git a/src/zcl_excel_converter_result_wd.clas.abap b/src/not_cloud/zcl_excel_converter_result_wd.clas.abap similarity index 100% rename from src/zcl_excel_converter_result_wd.clas.abap rename to src/not_cloud/zcl_excel_converter_result_wd.clas.abap diff --git a/src/zcl_excel_converter_result_wd.clas.xml b/src/not_cloud/zcl_excel_converter_result_wd.clas.xml similarity index 100% rename from src/zcl_excel_converter_result_wd.clas.xml rename to src/not_cloud/zcl_excel_converter_result_wd.clas.xml diff --git a/src/zcl_excel_converter_salv_table.clas.abap b/src/not_cloud/zcl_excel_converter_salv_table.clas.abap similarity index 100% rename from src/zcl_excel_converter_salv_table.clas.abap rename to src/not_cloud/zcl_excel_converter_salv_table.clas.abap diff --git a/src/zcl_excel_converter_salv_table.clas.xml b/src/not_cloud/zcl_excel_converter_salv_table.clas.xml similarity index 100% rename from src/zcl_excel_converter_salv_table.clas.xml rename to src/not_cloud/zcl_excel_converter_salv_table.clas.xml diff --git a/src/zcl_excel.clas.abap b/src/zcl_excel.clas.abap index 2af87ae..db17010 100644 --- a/src/zcl_excel.clas.abap +++ b/src/zcl_excel.clas.abap @@ -495,7 +495,7 @@ CLASS zcl_excel IMPLEMENTATION. METHOD get_style_index_in_styles. - DATA: index TYPE syindex. + DATA: index TYPE i. DATA: lo_iterator TYPE REF TO zcl_excel_collection_iterator, lo_style TYPE REF TO zcl_excel_style. diff --git a/src/zcl_excel_sheet_setup.clas.abap b/src/zcl_excel_sheet_setup.clas.abap index 73fa944..c937bb4 100644 --- a/src/zcl_excel_sheet_setup.clas.abap +++ b/src/zcl_excel_sheet_setup.clas.abap @@ -8,7 +8,7 @@ CLASS zcl_excel_sheet_setup DEFINITION *"* do not include other source files here!!! DATA black_and_white TYPE flag . - DATA cell_comments TYPE stringval . + DATA cell_comments TYPE string . DATA copies TYPE int2 . CONSTANTS c_break_column TYPE zexcel_break VALUE 2. "#EC NOTEXT CONSTANTS c_break_none TYPE zexcel_break VALUE 0. "#EC NOTEXT @@ -93,7 +93,7 @@ CLASS zcl_excel_sheet_setup DEFINITION CONSTANTS c_pe_na TYPE string VALUE 'NA'. "#EC NOTEXT DATA diff_oddeven_headerfooter TYPE flag . DATA draft TYPE flag . - DATA errors TYPE stringval . + DATA errors TYPE string . DATA even_footer TYPE zexcel_s_worksheet_head_foot . DATA even_header TYPE zexcel_s_worksheet_head_foot . DATA first_page_number TYPE int2 . diff --git a/src/zif_excel_reader.intf.abap b/src/zif_excel_reader.intf.abap index a88c77e..e97bbd3 100644 --- a/src/zif_excel_reader.intf.abap +++ b/src/zif_excel_reader.intf.abap @@ -6,7 +6,7 @@ INTERFACE zif_excel_reader IMPORTING !i_filename TYPE csequence !i_use_alternate_zip TYPE seoclsname DEFAULT space - !i_from_applserver TYPE sybatch DEFAULT sy-batch + !i_from_applserver TYPE abap_bool DEFAULT sy-batch !iv_zcl_excel_classname TYPE clike OPTIONAL RETURNING VALUE(r_excel) TYPE REF TO zcl_excel From 8d63df6ba6600505e437040e61fe5e3466108774 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 5 Jan 2022 21:29:37 +0100 Subject: [PATCH 3/4] refactor CONVERT_COLUMN2INT (#952) Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> --- src/zcl_excel_common.clas.abap | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/zcl_excel_common.clas.abap b/src/zcl_excel_common.clas.abap index 67bb55d..62614f9 100644 --- a/src/zcl_excel_common.clas.abap +++ b/src/zcl_excel_common.clas.abap @@ -429,7 +429,8 @@ CLASS zcl_excel_common IMPLEMENTATION. * 1st character *--------------------------------------------------------------------* lv_column = lv_column_c. - lv_modulo = cl_abap_conv_out_ce=>uccpi( lv_column+0(1) ) MOD zcl_excel_common=>c_excel_col_module. + FIND lv_column+0(1) IN sy-abcde MATCH OFFSET lv_modulo. + lv_modulo = lv_modulo + 1. IF lv_modulo < 1 OR lv_modulo > 26. MESSAGE e800(zabap2xlsx) INTO lv_errormessage. zcx_excel=>raise_symsg( ). @@ -440,7 +441,8 @@ CLASS zcl_excel_common IMPLEMENTATION. * 2nd character if present *--------------------------------------------------------------------* CHECK lv_column+1(1) IS NOT INITIAL. " No need to continue if string ended - lv_modulo = cl_abap_conv_out_ce=>uccpi( lv_column+1(1) ) MOD zcl_excel_common=>c_excel_col_module. + FIND lv_column+1(1) IN sy-abcde MATCH OFFSET lv_modulo. + lv_modulo = lv_modulo + 1. IF lv_modulo < 1 OR lv_modulo > 26. MESSAGE e800(zabap2xlsx) INTO lv_errormessage. zcx_excel=>raise_symsg( ). @@ -451,7 +453,8 @@ CLASS zcl_excel_common IMPLEMENTATION. * 3rd character if present *--------------------------------------------------------------------* CHECK lv_column+2(1) IS NOT INITIAL. " No need to continue if string ended - lv_modulo = cl_abap_conv_out_ce=>uccpi( lv_column+2(1) ) MOD zcl_excel_common=>c_excel_col_module. + FIND lv_column+2(1) IN sy-abcde MATCH OFFSET lv_modulo. + lv_modulo = lv_modulo + 1. IF lv_modulo < 1 OR lv_modulo > 26. MESSAGE e800(zabap2xlsx) INTO lv_errormessage. zcx_excel=>raise_symsg( ). From 87b8291ea24a7037ecb15c0dea13fd87ac2cd391 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 5 Jan 2022 21:39:55 +0100 Subject: [PATCH 4/4] remove use of DTEL SYLANGU and DTEL GUID_16 (#953) * remove use of DTEL SYLANGU * and GUID_16 Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> --- src/zcl_excel_drawing.clas.abap | 10 ++++----- src/zcl_excel_obsolete_func_wrap.clas.abap | 4 ++-- src/zexcel_guid.dtel.xml | 24 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 src/zexcel_guid.dtel.xml diff --git a/src/zcl_excel_drawing.clas.abap b/src/zcl_excel_drawing.clas.abap index bdf21e4..8253d12 100644 --- a/src/zcl_excel_drawing.clas.abap +++ b/src/zcl_excel_drawing.clas.abap @@ -44,7 +44,7 @@ CLASS zcl_excel_drawing DEFINITION VALUE(r_from_row) TYPE zexcel_cell_row . METHODS get_guid RETURNING - VALUE(ep_guid) TYPE guid_16 . + VALUE(ep_guid) TYPE zexcel_guid . METHODS get_height_emu_str RETURNING VALUE(r_height) TYPE string . @@ -133,7 +133,7 @@ CLASS zcl_excel_drawing DEFINITION CONSTANTS c_media_source_www TYPE c VALUE 1. "#EC NOTEXT CONSTANTS c_media_source_xstring TYPE c VALUE 0. "#EC NOTEXT CONSTANTS c_media_source_mime TYPE c VALUE 2. "#EC NOTEXT - DATA guid TYPE guid_16 . + DATA guid TYPE zexcel_guid . DATA media TYPE xstring . DATA media_key_www TYPE wwwdatatab . DATA media_name TYPE string . @@ -147,7 +147,7 @@ ENDCLASS. -CLASS zcl_excel_drawing IMPLEMENTATION. +CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. METHOD constructor. @@ -221,7 +221,7 @@ CLASS zcl_excel_drawing IMPLEMENTATION. METHOD get_media. - DATA: lv_language TYPE sylangu. + DATA: lv_language LIKE sy-langu. DATA: lt_bin_mime TYPE sdokcntbins. DATA: lt_mime TYPE tsfmime, lv_filesize TYPE i, @@ -1053,7 +1053,7 @@ CLASS zcl_excel_drawing IMPLEMENTATION. METHOD set_media_mime. - DATA: lv_language TYPE sylangu. + DATA: lv_language LIKE sy-langu. io = ip_io. media_source = c_media_source_mime. diff --git a/src/zcl_excel_obsolete_func_wrap.clas.abap b/src/zcl_excel_obsolete_func_wrap.clas.abap index 96c8d8a..2829ca3 100644 --- a/src/zcl_excel_obsolete_func_wrap.clas.abap +++ b/src/zcl_excel_obsolete_func_wrap.clas.abap @@ -6,14 +6,14 @@ CLASS zcl_excel_obsolete_func_wrap DEFINITION CLASS-METHODS guid_create RETURNING - VALUE(rv_guid_16) TYPE guid_16 . + VALUE(rv_guid_16) TYPE zexcel_guid . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. -CLASS zcl_excel_obsolete_func_wrap IMPLEMENTATION. +CLASS ZCL_EXCEL_OBSOLETE_FUNC_WRAP IMPLEMENTATION. METHOD guid_create. diff --git a/src/zexcel_guid.dtel.xml b/src/zexcel_guid.dtel.xml new file mode 100644 index 0000000..8dafb35 --- /dev/null +++ b/src/zexcel_guid.dtel.xml @@ -0,0 +1,24 @@ + + + + + + ZEXCEL_GUID + E + 16 + 10 + 16 + 20 + GUID + GUID + GUID + GUID + GUID + E + RAW + 000016 + 000032 + + + +