mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 14:06:24 +08:00
git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@8 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
parent
30454928ba
commit
9b30f8098e
|
@ -126,7 +126,17 @@ public section.
|
|||
value(EP_SIZE) type I .
|
||||
methods GET_TABLES_ITERATOR
|
||||
returning
|
||||
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .</publicSection>
|
||||
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
|
||||
methods GET_FREEZE_CELL
|
||||
exporting
|
||||
!EP_ROW type ZEXCEL_CELL_ROW
|
||||
!EP_COLUMN type ZEXCEL_CELL_COLUMN .
|
||||
methods FREEZE_PANES
|
||||
importing
|
||||
!IP_NUM_COLUMNS type I optional
|
||||
!IP_NUM_ROWS type I optional
|
||||
raising
|
||||
ZCX_EXCEL .</publicSection>
|
||||
<protectedSection>*"* protected components of class ZCL_EXCEL_WORKSHEET
|
||||
*"* do not include other source files here!!!
|
||||
protected section.</protectedSection>
|
||||
|
@ -146,6 +156,8 @@ private section.
|
|||
data DEFAULT_ROW_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI .
|
||||
data EXCEL type ref to ZCL_EXCEL .
|
||||
data TABLES type ref to CL_OBJECT_COLLECTION .
|
||||
data FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN .
|
||||
data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW .
|
||||
|
||||
methods UPDATE_DIMENSION_RANGE .</privateSection>
|
||||
<localImplementation>*"* local class implementation for public class
|
||||
|
@ -181,6 +193,8 @@ private section.
|
|||
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TABLES" VERSION="1" LANGU="E" DESCRIPT="Colletion of tables" EXPOSURE="0" STATE="1" EDITORDER="22 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" EXPOSURE="2" STATE="1" EDITORDER="16 " AUTHOR="FEMIA" CREATEDON="20100629" CHANGEDBY="FEMIA" CHANGEDON="20100831" ATTDECLTYP="0" ATTVALUE="'Worksheet'" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="UPPER_CELL" VERSION="1" LANGU="E" DESCRIPT="Top left range cell" EXPOSURE="0" STATE="1" EDITORDER="17 " AUTHOR="FEMIA" CREATEDON="20100704" CHANGEDBY="FEMIA" CHANGEDON="20100831" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANE_CELL_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="0" STATE="1" EDITORDER="13 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDBY="BCUSER" CHANGEDON="20100914" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANE_CELL_ROW" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="14 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
|
||||
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_CONDITIONAL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Creates a new conditional formatting" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20100831" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_CONDITIONAL_STYLE" SCONAME="EO_CONDITIONAL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Font Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20100831" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_CONDITIONAL"/>
|
||||
<source>method ADD_NEW_CONDITIONAL_STYLE.
|
||||
|
@ -868,6 +882,44 @@ endmethod.</source>
|
|||
SHIFT lv_row_alpha LEFT DELETING LEADING space.
|
||||
CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords.
|
||||
|
||||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" VERSION="1" LANGU="E" DESCRIPT="Freeze panes for supplied number of rows and/or columns" EXPOSURE="2" STATE="1" EDITORDER="28 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDBY="BCUSER" CHANGEDON="20100914" MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" SCONAME="IP_NUM_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Number of columns to freeze (starting from left-most)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDBY="BCUSER" CHANGEDON="20100914" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PAROPTIONL="X"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" SCONAME="IP_NUM_ROWS" VERSION="1" LANGU="E" DESCRIPT="Number of rows to freeze (starting from top-most)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDBY="BCUSER" CHANGEDON="20100914" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PAROPTIONL="X"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDON="00000000"/>
|
||||
<source>METHOD freeze_panes.
|
||||
data: lv_xsplit type i,
|
||||
lv_ysplit type i.
|
||||
|
||||
IF ip_num_columns IS NOT SUPPLIED AND ip_num_rows IS NOT SUPPLIED.
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = 'Pleas provide number of rows and/or columns to freeze'.
|
||||
ENDIF.
|
||||
|
||||
IF ip_num_columns IS SUPPLIED AND ip_num_columns <= 0.
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = 'Number of columns to freeze should be positive'.
|
||||
ENDIF.
|
||||
|
||||
IF ip_num_rows IS SUPPLIED AND ip_num_rows <= 0.
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = 'Number of rows to freeze should be positive'.
|
||||
ENDIF.
|
||||
|
||||
freeze_pane_cell_column = ip_num_columns + 1.
|
||||
freeze_pane_cell_row = ip_num_rows + 1.
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_FREEZE_CELL" VERSION="1" LANGU="E" DESCRIPT="Gets the coordinates of cell determining freeze panes" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDBY="BCUSER" CHANGEDON="20100914" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_FREEZE_CELL" SCONAME="EP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_FREEZE_CELL" SCONAME="EP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100914" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
|
||||
<source>method GET_FREEZE_CELL.
|
||||
ep_row = me->freeze_pane_cell_row.
|
||||
ep_column = me->freeze_pane_cell_column.
|
||||
endmethod.</source>
|
||||
</method>
|
||||
</CLAS>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100820" UNAM="BCUSER" UDAT="20100820" VERN="000005" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100820" STIME="202448" IDATE="20100820" ITIME="202448" UCCHECK="X">
|
||||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100820" UNAM="FEMIA" UDAT="20100905" VERN="000007" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100915" STIME="094448" IDATE="20100905" ITIME="164325" UCCHECK="X">
|
||||
<textPool>
|
||||
<language SPRAS="E">
|
||||
<textElement ID="R" ENTRY="ABAP2XLSX Reader Demo" LENGTH="21 "/>
|
||||
|
@ -15,8 +15,9 @@
|
|||
|
||||
REPORT zdemo_excel15.
|
||||
|
||||
DATA: excel TYPE REF TO zcl_excel,
|
||||
reader TYPE REF TO zif_excel_reader.
|
||||
DATA: excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zif_excel_writer,
|
||||
reader TYPE REF TO zif_excel_reader.
|
||||
|
||||
DATA: lv_file TYPE xstring,
|
||||
lv_bytecount TYPE i,
|
||||
|
@ -25,7 +26,9 @@ DATA: lv_file TYPE xstring,
|
|||
TRY.
|
||||
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
|
||||
excel = reader->load_file( 'C:\iTab.xlsx' ).
|
||||
lv_file = excel->save_as( zcl_excel=>c_xlsx ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
|
||||
lv_file = lo_excel_writer->write_file( excel ).
|
||||
|
||||
" Convert to binary
|
||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||
|
|
|
@ -38,10 +38,12 @@ ls_table_settings-show_row_stripes = abap_true.
|
|||
lo_worksheet->bind_table( ip_table = lt_test
|
||||
is_table_settings = ls_table_settings ).
|
||||
|
||||
lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling
|
||||
|
||||
column_dimension = lo_worksheet->get_column_dimension( 'E' ). "make date field a bit wider
|
||||
column_dimension->set_width( 11 ).
|
||||
|
||||
create object lo_excel_writer type zcl_excel_writer_2007.
|
||||
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
|
||||
lv_file = lo_excel_writer->write_file( lo_excel ).
|
||||
|
||||
" Convert to binary
|
||||
|
|
Loading…
Reference in New Issue
Block a user