git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@221 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Ivan Femia 2011-09-25 10:29:04 +00:00
parent ecc03faf04
commit 3f39940cb4
2 changed files with 86 additions and 23 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_WRITER_CSV" VERSION="1" LANGU="E" DESCRIPT="Excel writer 2007" UUID="4DADD1E5BEEA005BE1008000AC17C0C6" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="JACQUED" CREATEDON="20110420" CHANGEDBY="FEMIA" CHANGEDON="20110504" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_WRITER_CSV" REFCLSNAME="ZIF_EXCEL_WRITER" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="FEMIA" CREATEDON="20110428" CHANGEDBY="FEMIA" CHANGEDON="20110504" RELTYPE="1"/>
<CLAS CLSNAME="ZCL_EXCEL_WRITER_CSV" VERSION="1" LANGU="E" DESCRIPT="Excel writer 2007" UUID="4DADD1E5BEEA005BE1008000AC17C0C6" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="JACQUED" CREATEDON="20110420" CHANGEDBY="FEMIA" CHANGEDON="20110925" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="702" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_WRITER_CSV" REFCLSNAME="ZIF_EXCEL_WRITER" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" RELTYPE="1" EDITORDER="0 "/>
<publicSection>class ZCL_EXCEL_WRITER_CSV definition
public
final
@ -18,10 +18,15 @@ public section.
class-methods SET_ENCLOSURE
importing
value(IP_VALUE) type CHAR01 default &apos;&quot;&apos; .
class CL_ABAP_CHAR_UTILITIES definition load .
class-methods SET_ENDOFLINE
importing
value(IP_VALUE) type ANY default CL_ABAP_CHAR_UTILITIES=&gt;CR_LF .</publicSection>
value(IP_VALUE) type ANY default CL_ABAP_CHAR_UTILITIES=&gt;CR_LF .
class-methods SET_ACTIVE_SHEET_INDEX
importing
!I_ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET .
class-methods SET_ACTIVE_SHEET_INDEX_BY_NAME
importing
!I_WORKSHEET_NAME type ZEXCEL_WORKSHEETS_NAME .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_WRITER_2007
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
@ -33,6 +38,8 @@ private section.
class-data DELIMITER type CHAR01 value &apos;;&apos;. &quot;#EC NOTEXT .
class-data ENCLOSURE type CHAR01 value &apos;&quot;&apos;. &quot;#EC NOTEXT .
class-data EOL type CHAR01 value CL_ABAP_CHAR_UTILITIES=&gt;CR_LF. &quot;#EC NOTEXT .
class-data WORKSHEET_NAME type ZEXCEL_WORKSHEETS_NAME .
class-data WORKSHEET_INDEX type ZEXCEL_ACTIVE_WORKSHEET .
methods CREATE
returning
@ -48,18 +55,20 @@ private section.
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="DELIMITER" VERSION="1" LANGU="E" DESCRIPT="Delimiter" EXPOSURE="0" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" ATTDECLTYP="1" ATTVALUE="&apos;;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="ENCLOSURE" VERSION="1" LANGU="E" DESCRIPT="Text inclusure character" EXPOSURE="0" STATE="1" EDITORDER="3 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" ATTDECLTYP="1" ATTVALUE="&apos;&quot;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="EOL" VERSION="1" LANGU="E" DESCRIPT="End Of line" EXPOSURE="0" STATE="1" EDITORDER="4 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" ATTDECLTYP="1" ATTVALUE="CL_ABAP_CHAR_UTILITIES=&gt;CR_LF" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="0" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20110428" CHANGEDBY="FEMIA" CHANGEDON="20110504" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="DELIMITER" VERSION="1" LANGU="E" DESCRIPT="Delimiter" EXPOSURE="0" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" ATTDECLTYP="1" ATTVALUE="&apos;;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="ENCLOSURE" VERSION="1" LANGU="E" DESCRIPT="Text inclusure character" EXPOSURE="0" STATE="1" EDITORDER="3 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" ATTDECLTYP="1" ATTVALUE="&apos;&quot;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="EOL" VERSION="1" LANGU="E" DESCRIPT="End Of line" EXPOSURE="0" STATE="1" EDITORDER="4 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" ATTDECLTYP="1" ATTVALUE="CL_ABAP_CHAR_UTILITIES=&gt;CR_LF" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="0" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="WORKSHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" EXPOSURE="0" STATE="1" EDITORDER="6 " AUTHOR="FEMIA" CREATEDON="20110925" CHANGEDON="00000000" ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="WORKSHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" EXPOSURE="0" STATE="1" EDITORDER="5 " AUTHOR="FEMIA" CREATEDON="20110925" CHANGEDON="00000000" ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL_WRITER_CSV" CPDNAME="ZIF_EXCEL_WRITER~WRITE_FILE">
<source>method ZIF_EXCEL_WRITER~WRITE_FILE.
me-&gt;excel = io_excel.
ep_file = me-&gt;create( ).
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE" VERSION="1" LANGU="E" DESCRIPT="Create" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110428" CHANGEDBY="FEMIA" CHANGEDON="20110504" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE" SCONAME="EP_EXCEL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110428" CHANGEDBY="FEMIA" CHANGEDON="20110504" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE" VERSION="1" LANGU="E" DESCRIPT="Create" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE" SCONAME="EP_EXCEL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE.
* .csv format with ; delimiter
@ -68,8 +77,8 @@ endmethod.</source>
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE_CSV" VERSION="1" LANGU="E" DESCRIPT="Create CSV ; Delimited format" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110428" CHANGEDBY="FEMIA" CHANGEDON="20110504" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE_CSV" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110428" CHANGEDBY="FEMIA" CHANGEDON="20110504" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE_CSV" VERSION="1" LANGU="E" DESCRIPT="Create CSV ; Delimited format" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE_CSV" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_CSV.
TYPES: BEGIN OF lty_format,
@ -124,8 +133,20 @@ endmethod.</source>
* STEP 1: Collect strings from the first worksheet
lo_iterator = excel-&gt;get_worksheets_iterator( ).
data: current_worksheet_title type ZEXCEL_SHEET_TITLE.
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
IF worksheet_name IS NOT INITIAL.
current_worksheet_title = lo_worksheet-&gt;get_title( ).
CHECK current_worksheet_title = worksheet_name.
ELSE.
IF worksheet_index IS INITIAL.
worksheet_index = 1.
ENDIF.
CHECK worksheet_index = sy-index.
ENDIF.
APPEND LINES OF lo_worksheet-&gt;sheet_content TO lt_cell_data.
EXIT. &quot; Take first worksheet only
ENDWHILE.
@ -275,20 +296,34 @@ endmethod.</source>
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_DELIMITER" VERSION="1" LANGU="E" DESCRIPT="Set Delimiter value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_DELIMITER" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Delimiter Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR01" PARVALUE="&apos;;&apos;"/>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Activate worksheet by index before the CSV file creation" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110925" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX" SCONAME="I_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110925" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<source>method SET_ACTIVE_SHEET_INDEX.
CLEAR WORKSHEET_NAME.
WORKSHEET_INDEX = i_active_worksheet.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Activate worksheet by name before the CSV file creation" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110925" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" SCONAME="I_WORKSHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110925" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME"/>
<source>method SET_ACTIVE_SHEET_INDEX_BY_NAME.
CLEAR WORKSHEET_INDEX.
WORKSHEET_NAME = i_worksheet_name.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_DELIMITER" VERSION="1" LANGU="E" DESCRIPT="Set Delimiter value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_DELIMITER" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Delimiter Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR01" PARVALUE="&apos;;&apos;"/>
<source>method SET_DELIMITER.
delimiter = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENCLOSURE" VERSION="1" LANGU="E" DESCRIPT="Set Enclosure character" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENCLOSURE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Text field enclosure character" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR01" PARVALUE="&apos;&quot;&apos;"/>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENCLOSURE" VERSION="1" LANGU="E" DESCRIPT="Set Enclosure character" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENCLOSURE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Text field enclosure character" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR01" PARVALUE="&apos;&quot;&apos;"/>
<source>method SET_ENCLOSURE.
zcl_excel_writer_csv=&gt;enclosure = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENDOFLINE" VERSION="1" LANGU="E" DESCRIPT="Set End Of Line character" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENDOFLINE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="End Of Line Character" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110504" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="ANY" PARVALUE="CL_ABAP_CHAR_UTILITIES=&gt;CR_LF"/>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENDOFLINE" VERSION="1" LANGU="E" DESCRIPT="Set End Of Line character" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENDOFLINE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="End Of Line Character" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110925" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="ANY" PARVALUE="CL_ABAP_CHAR_UTILITIES=&gt;CR_LF"/>
<source>method SET_ENDOFLINE.
zcl_excel_writer_csv=&gt;eol = ip_value.
endmethod.</source>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL28" VARCL="X" SUBC="1" CNAM="JACQUED" CDAT="20110427" UNAM="FEMIA" UDAT="20110528" VERN="000023" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="183532" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL28" VARCL="X" SUBC="1" CNAM="JACQUED" CDAT="20110427" UNAM="FEMIA" UDAT="20110925" VERN="000033" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110925" STIME="122527" IDATE="20110925" ITIME="122527" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Reader" LENGTH="27 "/>
<textElement ID="R" LENGTH="27 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
@ -31,7 +31,7 @@ DATA: lv_file_name TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;01_HelloWorld.csv&apos;.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;28_HelloWorld.csv&apos;.
PARAMETERS: p_path TYPE string.
@ -62,19 +62,47 @@ START-OF-SELECTION.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = sy-datum ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = sy-uzeit ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_external_link( iv_url = &apos;https://cw.sdn.sap.com/cw/groups/abap2xlsx&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 4 ip_value = &apos;Click here to visit abap2xlsx homepage&apos; ip_hyperlink = lo_hyperlink ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
column_dimension-&gt;set_width( 11 ).
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the second sheet&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_csv.
zcl_excel_writer_csv=&gt;set_delimiter( ip_value = cl_abap_char_utilities=&gt;horizontal_tab ).
zcl_excel_writer_csv=&gt;set_enclosure( ip_value = &apos;&apos;&apos;&apos; ).
zcl_excel_writer_csv=&gt;set_endofline( ip_value = cl_abap_char_utilities=&gt;cr_lf ).
zcl_excel_writer_csv=&gt;set_active_sheet_index( i_active_worksheet = 2 ).
* zcl_excel_writer_csv=&gt;set_active_sheet_index_by_name( I_WORKSHEET_NAME = &apos;Sheet2&apos; ).
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
REPLACE FIRST OCCURRENCE OF &apos;.csv&apos; IN lv_full_path WITH &apos;_Sheet2.csv&apos;.
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).
* zcl_excel_writer_csv=&gt;set_active_sheet_index( i_active_worksheet = 2 ).
zcl_excel_writer_csv=&gt;set_active_sheet_index_by_name( I_WORKSHEET_NAME = &apos;Sheet1&apos; ).
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
REPLACE FIRST OCCURRENCE OF &apos;_Sheet2.csv&apos; IN lv_full_path WITH &apos;_Sheet1.csv&apos;.
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;