mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:06:15 +08:00
#230 - Pimp my Code - ZCL_EXCEL_READER_2007->ZIF_EXCEL_READER~LOAD_FILE
git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@360 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
parent
a9701a7605
commit
c21a49617b
|
@ -1,71 +1,71 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<CLAS CLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" LANGU="E" DESCRIPT="Read Excel 2007 into ZCL_EXCEL" UUID="DFAC2E4C81CE84F1B39B000C29B7D360" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
<CLAS CLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" LANGU="E" DESCRIPT="Read Excel 2007 into ZCL_EXCEL" UUID="DFAC2E4C81CE84F1B39B000C29B7D360" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RELATIONSHIP" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="11 " SRCCOLUMN2="29 " TYPESRC_LENG="222 " TYPESRC="BEGIN OF t_relationship,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RELATIONSHIP" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="11 " SRCCOLUMN2="29 " TYPESRC_LENG="222 " TYPESRC="BEGIN OF t_relationship,
|
||||||
id TYPE string,
|
id TYPE string,
|
||||||
type TYPE string,
|
type TYPE string,
|
||||||
target TYPE string,
|
target TYPE string,
|
||||||
worksheet TYPE REF TO zcl_excel_worksheet,
|
worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
END OF t_relationship
|
END OF t_relationship
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILEVERSION" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="13 " SRCCOLUMN1="4 " SRCROW2="19 " SRCCOLUMN2="26 " TYPESRC_LENG="254 " TYPESRC="BEGIN OF t_fileversion,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILEVERSION" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="13 " SRCCOLUMN1="4 " SRCROW2="19 " SRCCOLUMN2="26 " TYPESRC_LENG="254 " TYPESRC="BEGIN OF t_fileversion,
|
||||||
appname TYPE string,
|
appname TYPE string,
|
||||||
lastedited TYPE string,
|
lastedited TYPE string,
|
||||||
lowestedited TYPE string,
|
lowestedited TYPE string,
|
||||||
rupbuild TYPE string,
|
rupbuild TYPE string,
|
||||||
codename TYPE string,
|
codename TYPE string,
|
||||||
END OF t_fileversion
|
END OF t_fileversion
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEET" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="21 " SRCCOLUMN1="4 " SRCROW2="25 " SRCCOLUMN2="22 " TYPESRC_LENG="152 " TYPESRC="BEGIN OF t_sheet,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEET" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="21 " SRCCOLUMN1="4 " SRCROW2="25 " SRCCOLUMN2="22 " TYPESRC_LENG="152 " TYPESRC="BEGIN OF t_sheet,
|
||||||
name TYPE string,
|
name TYPE string,
|
||||||
sheetid TYPE string,
|
sheetid TYPE string,
|
||||||
id TYPE string,
|
id TYPE string,
|
||||||
END OF t_sheet
|
END OF t_sheet
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_WORKBOOKPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="27 " SRCCOLUMN1="4 " SRCROW2="30 " SRCCOLUMN2="27 " TYPESRC_LENG="150 " TYPESRC="BEGIN OF t_workbookpr,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_WORKBOOKPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="27 " SRCCOLUMN1="4 " SRCROW2="30 " SRCCOLUMN2="27 " TYPESRC_LENG="150 " TYPESRC="BEGIN OF t_workbookpr,
|
||||||
codename TYPE string,
|
codename TYPE string,
|
||||||
defaultthemeversion TYPE string,
|
defaultthemeversion TYPE string,
|
||||||
END OF t_workbookpr
|
END OF t_workbookpr
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEETPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="5 " TYPTYPE="4" SRCROW1="32 " SRCCOLUMN1="4 " SRCROW2="34 " SRCCOLUMN2="24 " TYPESRC_LENG="96 " TYPESRC="BEGIN OF t_sheetpr,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEETPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="5 " TYPTYPE="4" SRCROW1="32 " SRCCOLUMN1="4 " SRCROW2="34 " SRCCOLUMN2="24 " TYPESRC_LENG="96 " TYPESRC="BEGIN OF t_sheetpr,
|
||||||
codename TYPE string,
|
codename TYPE string,
|
||||||
END OF t_sheetpr
|
END OF t_sheetpr
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RANGE" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="6 " TYPTYPE="4" SRCROW1="36 " SRCCOLUMN1="4 " SRCROW2="39 " SRCCOLUMN2="22 " TYPESRC_LENG="143 " TYPESRC='BEGIN OF t_range,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RANGE" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="6 " TYPTYPE="4" SRCROW1="36 " SRCCOLUMN1="4 " SRCROW2="39 " SRCCOLUMN2="22 " TYPESRC_LENG="143 " TYPESRC='BEGIN OF t_range,
|
||||||
name TYPE string,
|
name TYPE string,
|
||||||
localsheetid TYPE string, " issue #163
|
localsheetid TYPE string, " issue #163
|
||||||
END OF t_range
|
END OF t_range
|
||||||
'/>
|
'/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILLS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="7 " TYPTYPE="4" SRCROW1="41 " SRCCOLUMN1="4 " SRCROW2="41 " SRCCOLUMN2="78 " TYPESRC_LENG="77 " TYPESRC="t_fills TYPE STANDARD TABLE OF REF TO zcl_excel_style_fill WITH DEFAULT KEY
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILLS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="7 " TYPTYPE="4" SRCROW1="41 " SRCCOLUMN1="4 " SRCROW2="41 " SRCCOLUMN2="78 " TYPESRC_LENG="77 " TYPESRC="t_fills TYPE STANDARD TABLE OF REF TO zcl_excel_style_fill WITH DEFAULT KEY
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_BORDERS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="8 " TYPTYPE="4" SRCROW1="43 " SRCCOLUMN1="4 " SRCROW2="43 " SRCCOLUMN2="83 " TYPESRC_LENG="82 " TYPESRC="t_borders TYPE STANDARD TABLE OF REF TO zcl_excel_style_borders WITH DEFAULT KEY
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_BORDERS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="8 " TYPTYPE="4" SRCROW1="43 " SRCCOLUMN1="4 " SRCROW2="43 " SRCCOLUMN2="83 " TYPESRC_LENG="82 " TYPESRC="t_borders TYPE STANDARD TABLE OF REF TO zcl_excel_style_borders WITH DEFAULT KEY
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FONTS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="9 " TYPTYPE="4" SRCROW1="45 " SRCCOLUMN1="4 " SRCROW2="45 " SRCCOLUMN2="78 " TYPESRC_LENG="77 " TYPESRC="t_fonts TYPE STANDARD TABLE OF REF TO zcl_excel_style_font WITH DEFAULT KEY
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FONTS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="9 " TYPTYPE="4" SRCROW1="45 " SRCCOLUMN1="4 " SRCROW2="45 " SRCCOLUMN2="78 " TYPESRC_LENG="77 " TYPESRC="t_fonts TYPE STANDARD TABLE OF REF TO zcl_excel_style_font WITH DEFAULT KEY
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_STYLE_REFS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="10 " TYPTYPE="4" SRCROW1="47 " SRCCOLUMN1="4 " SRCROW2="47 " SRCCOLUMN2="52 " TYPESRC_LENG="51 " TYPESRC="t_style_refs TYPE TABLE OF REF TO zcl_excel_style
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_STYLE_REFS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="10 " TYPTYPE="4" SRCROW1="47 " SRCCOLUMN1="4 " SRCROW2="47 " SRCCOLUMN2="52 " TYPESRC_LENG="51 " TYPESRC="t_style_refs TYPE TABLE OF REF TO zcl_excel_style
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMAT" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="11 " TYPTYPE="4" SRCROW1="49 " SRCCOLUMN1="4 " SRCROW2="52 " SRCCOLUMN2="20 " TYPESRC_LENG="123 " TYPESRC="BEGIN OF t_num_format,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMAT" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="11 " TYPTYPE="4" SRCROW1="49 " SRCCOLUMN1="4 " SRCROW2="52 " SRCCOLUMN2="20 " TYPESRC_LENG="123 " TYPESRC="BEGIN OF t_num_format,
|
||||||
id TYPE string,
|
id TYPE string,
|
||||||
format TYPE REF TO zcl_excel_style_number_format,
|
format TYPE REF TO zcl_excel_style_number_format,
|
||||||
END OF t_num_format
|
END OF t_num_format
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMATS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="12 " TYPTYPE="4" SRCROW1="54 " SRCCOLUMN1="4 " SRCROW2="54 " SRCCOLUMN2="69 " TYPESRC_LENG="68 " TYPESRC="t_num_formats TYPE HASHED TABLE OF t_num_format WITH UNIQUE KEY id
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMATS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="12 " TYPTYPE="4" SRCROW1="54 " SRCCOLUMN1="4 " SRCROW2="54 " SRCCOLUMN2="69 " TYPESRC_LENG="68 " TYPESRC="t_num_formats TYPE HASHED TABLE OF t_num_format WITH UNIQUE KEY id
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_COLOR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="13 " TYPTYPE="4" SRCROW1="56 " SRCCOLUMN1="4 " SRCROW2="61 " SRCCOLUMN2="15 " TYPESRC_LENG="132 " TYPESRC="BEGIN OF t_color,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_COLOR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="13 " TYPTYPE="4" SRCROW1="56 " SRCCOLUMN1="4 " SRCROW2="61 " SRCCOLUMN2="15 " TYPESRC_LENG="132 " TYPESRC="BEGIN OF t_color,
|
||||||
indexed TYPE string,
|
indexed TYPE string,
|
||||||
rgb TYPE string,
|
rgb TYPE string,
|
||||||
theme TYPE string,
|
theme TYPE string,
|
||||||
tint TYPE string,
|
tint TYPE string,
|
||||||
END OF t_color
|
END OF t_color
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWING" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="14 " TYPTYPE="4" SRCROW1="63 " SRCCOLUMN1="4 " SRCROW2="67 " SRCCOLUMN2="23 " TYPESRC_LENG="132 " TYPESRC="BEGIN OF T_REL_DRAWING,
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWING" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="14 " TYPTYPE="4" SRCROW1="63 " SRCCOLUMN1="4 " SRCROW2="67 " SRCCOLUMN2="23 " TYPESRC_LENG="132 " TYPESRC="BEGIN OF T_REL_DRAWING,
|
||||||
id type string,
|
id type string,
|
||||||
content type xstring,
|
content type xstring,
|
||||||
file_ext type string,
|
file_ext type string,
|
||||||
end of t_rel_drawing
|
end of t_rel_drawing
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWINGS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="15 " TYPTYPE="4" SRCROW1="69 " SRCCOLUMN1="4 " SRCROW2="69 " SRCCOLUMN2="45 " TYPESRC_LENG="44 " TYPESRC="t_rel_drawings type TABLE OF t_rel_drawing
|
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWINGS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="15 " TYPTYPE="4" SRCROW1="69 " SRCCOLUMN1="4 " SRCROW2="69 " SRCCOLUMN2="45 " TYPESRC_LENG="44 " TYPESRC="t_rel_drawings type TABLE OF t_rel_drawing
|
||||||
"/>
|
"/>
|
||||||
<implementing CLSNAME="ZCL_EXCEL_READER_2007" REFCLSNAME="ZIF_EXCEL_READER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
|
<implementing CLSNAME="ZCL_EXCEL_READER_2007" REFCLSNAME="ZIF_EXCEL_READER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1"/>
|
||||||
<publicSection>class ZCL_EXCEL_READER_2007 definition
|
<publicSection>class ZCL_EXCEL_READER_2007 definition
|
||||||
public
|
public
|
||||||
create public .
|
create public .
|
||||||
|
@ -246,6 +246,11 @@ protected section.
|
||||||
*"* implementation or private method's signature</localTypes>
|
*"* implementation or private method's signature</localTypes>
|
||||||
<localMacros>*"* use this source file for any macro definitions you need
|
<localMacros>*"* use this source file for any macro definitions you need
|
||||||
*"* in the implementation part of the class</localMacros>
|
*"* in the implementation part of the class</localMacros>
|
||||||
|
<textPool>
|
||||||
|
<language SPRAS="E">
|
||||||
|
<textElement ID="I" KEY="001" ENTRY="A problem occured when reading the file" LENGTH="60 "/>
|
||||||
|
</language>
|
||||||
|
</textPool>
|
||||||
<typeUsage CLSNAME="ZCL_EXCEL_READER_2007" TYPEGROUP="IXML" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
|
<typeUsage CLSNAME="ZCL_EXCEL_READER_2007" TYPEGROUP="IXML" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
|
||||||
<forwardDeclaration>IXML</forwardDeclaration>
|
<forwardDeclaration>IXML</forwardDeclaration>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="EXCEL2007" VERSION="1" LANGU="E" DESCRIPT="Excel 2007 data" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="EXCEL2007" VERSION="1" LANGU="E" DESCRIPT="Excel 2007 data" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||||
|
@ -297,67 +302,139 @@ endmethod.</source>
|
||||||
</interfaceMethod>
|
</interfaceMethod>
|
||||||
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="ZIF_EXCEL_READER~LOAD_FILE">
|
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="ZIF_EXCEL_READER~LOAD_FILE">
|
||||||
<source>method ZIF_EXCEL_READER~LOAD_FILE.
|
<source>method ZIF_EXCEL_READER~LOAD_FILE.
|
||||||
DATA: excel_data TYPE xstring.
|
*--------------------------------------------------------------------*
|
||||||
DATA filelength TYPE i.
|
* ToDos:
|
||||||
DATA bin_tab TYPE TABLE OF x255.
|
* 2do§1 decision whether to load from frontend or backend
|
||||||
" Background processing
|
* current behavior ( autodecide ) should be default
|
||||||
DATA bin_data LIKE LINE OF bin_tab.
|
* add optional parameter to allow user to choose
|
||||||
DATA len TYPE i.
|
* to load from backend even when online
|
||||||
DATA alen TYPE i.
|
* 2do§2 loosen typing of i_filename to CLIKE
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
* issue #230 - Pimp my Code
|
||||||
|
* - Stefan Schmöcker, 2012-11-05
|
||||||
|
* - ...
|
||||||
|
* changes: renaming variables to naming conventions
|
||||||
|
* renaming variables to indicate what they are used for
|
||||||
|
* adding comments to explain what we are trying to achieve
|
||||||
|
* message made to support multilinguality
|
||||||
|
* aligning code
|
||||||
|
* commenting on problems/future enhancements/todos we already know of or should decide upon
|
||||||
|
* adding issue # that has initiated the change - date provided to allow cleaning of code after a certain period
|
||||||
|
* explicit declaration of type of table instead of implicit declaration
|
||||||
|
* added errorhandling for open dataset
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
|
||||||
|
CONSTANTS: lcv_load_from_frontend TYPE char1 VALUE 'F',
|
||||||
|
lcv_load_from_backend TYPE char1 VALUE 'B'.
|
||||||
|
|
||||||
|
DATA: lv_load_from_source TYPE char1,
|
||||||
|
|
||||||
|
lv_filelength TYPE i,
|
||||||
|
lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY,
|
||||||
|
ls_binary_data LIKE LINE OF lt_binary_data,
|
||||||
|
* Background processing
|
||||||
|
lv_max_length_line TYPE i,
|
||||||
|
lv_actual_length_line TYPE i,
|
||||||
|
|
||||||
|
lv_errormessage TYPE string, " Can't pass '...'(abc) to exception-class
|
||||||
|
lv_excel_data TYPE xstring. " Binary content of .xlsx file
|
||||||
|
|
||||||
|
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
* ToDos: 2do§1 Decision whether to load from frontend or backend
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
* Autodecide on frontend or backend reading
|
||||||
|
* Background-processing --> backend reading
|
||||||
|
* Online-processing --> frontend reading
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
IF sy-batch = abap_true.
|
IF sy-batch = abap_true.
|
||||||
DESCRIBE FIELD bin_data LENGTH len IN BYTE MODE.
|
lv_load_from_source = lcv_load_from_backend.
|
||||||
OPEN DATASET i_filename FOR INPUT IN BINARY MODE.
|
|
||||||
WHILE sy-subrc = 0.
|
|
||||||
READ DATASET i_filename INTO bin_data MAXIMUM LENGTH len ACTUAL LENGTH alen.
|
|
||||||
APPEND bin_data TO bin_tab.
|
|
||||||
filelength = filelength + alen.
|
|
||||||
ENDWHILE.
|
|
||||||
CLOSE DATASET i_filename.
|
|
||||||
ELSE.
|
ELSE.
|
||||||
cl_gui_frontend_services=>gui_upload(
|
lv_load_from_source = lcv_load_from_frontend.
|
||||||
EXPORTING
|
|
||||||
filename = i_filename " Name of file
|
|
||||||
filetype = 'BIN' " File Type (ASCII, Binary)
|
|
||||||
IMPORTING
|
|
||||||
filelength = filelength
|
|
||||||
CHANGING
|
|
||||||
data_tab = bin_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 = 'A problem occured when reading the file'.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
CASE lv_load_from_source.
|
||||||
|
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
* Read from backend
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
WHEN lcv_load_from_backend.
|
||||||
|
DESCRIBE FIELD ls_binary_data LENGTH lv_max_length_line IN BYTE MODE.
|
||||||
|
OPEN DATASET i_filename FOR INPUT IN BINARY MODE.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
lv_errormessage = 'A problem occured when reading the file'(001).
|
||||||
|
RAISE EXCEPTION TYPE zcx_excel
|
||||||
|
EXPORTING
|
||||||
|
error = lv_errormessage.
|
||||||
|
ENDIF.
|
||||||
|
WHILE sy-subrc = 0.
|
||||||
|
|
||||||
|
READ DATASET i_filename INTO ls_binary_data MAXIMUM LENGTH lv_max_length_line ACTUAL LENGTH lv_actual_length_line.
|
||||||
|
APPEND ls_binary_data TO lt_binary_data.
|
||||||
|
lv_filelength = lv_filelength + lv_actual_length_line.
|
||||||
|
|
||||||
|
ENDWHILE.
|
||||||
|
CLOSE DATASET i_filename.
|
||||||
|
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
* Read from frontend
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
WHEN lcv_load_from_frontend.
|
||||||
|
cl_gui_frontend_services=>gui_upload( EXPORTING
|
||||||
|
filename = i_filename
|
||||||
|
filetype = 'BIN' " We are basically working with zipped directories --> force binary read
|
||||||
|
IMPORTING
|
||||||
|
filelength = lv_filelength
|
||||||
|
CHANGING
|
||||||
|
data_tab = lt_binary_data
|
||||||
|
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.
|
||||||
|
lv_errormessage = 'A problem occured when reading the file'(001).
|
||||||
|
RAISE EXCEPTION TYPE zcx_excel
|
||||||
|
EXPORTING
|
||||||
|
error = lv_errormessage.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
|
* Binary data needs to be provided as XSTRING for further processing
|
||||||
|
*--------------------------------------------------------------------*
|
||||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
input_length = filelength
|
input_length = lv_filelength
|
||||||
IMPORTING
|
IMPORTING
|
||||||
buffer = excel_data
|
buffer = lv_excel_data
|
||||||
TABLES
|
TABLES
|
||||||
binary_tab = bin_tab.
|
binary_tab = lt_binary_data.
|
||||||
r_excel = me->zif_excel_reader~load( excel_data ).
|
|
||||||
|
r_excel = me->zif_excel_reader~load( lv_excel_data ).
|
||||||
|
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</interfaceMethod>
|
</interfaceMethod>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="FILL_STRUCT_FROM_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Fills structure fields based on XML node attributes" EXPOSURE="1" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="FILL_STRUCT_FROM_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Fills structure fields based on XML node attributes" EXPOSURE="1" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
|
@ -1117,7 +1194,7 @@ endmethod.</source>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IP_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IP_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>METHOD load_workbook.
|
<source>method LOAD_WORKBOOK.
|
||||||
|
|
||||||
CONSTANTS: lc_shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',
|
CONSTANTS: lc_shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',
|
||||||
lc_worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',
|
lc_worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',
|
||||||
|
@ -1273,7 +1350,7 @@ endmethod.</source>
|
||||||
* #229: Set active worksheet - end coding
|
* #229: Set active worksheet - end coding
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
|
|
||||||
ENDMETHOD.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Loads worksheet" EXPOSURE="1" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Loads worksheet" EXPOSURE="1" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user