From c2096d1f9bcc69101350ef16893add6998eed08a Mon Sep 17 00:00:00 2001 From: RixarSAP <168567887+RixarSAP@users.noreply.github.com> Date: Sat, 11 May 2024 17:34:06 +0200 Subject: [PATCH 1/2] Added field WIDTH in field catalog of method BIND_TABLE (#1224) Fix #1227 --- src/zcl_excel_worksheet.clas.abap | 4 ++++ src/zexcel_s_fieldcatalog.tabl.xml | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index cfa86a3..6ef57ac 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -1083,6 +1083,10 @@ CLASS zcl_excel_worksheet IMPLEMENTATION. lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + IF -width IS NOT INITIAL. + set_column_width( ip_column = lv_column_alpha ip_width_fix = -width ). + ENDIF. + " First of all write column header IF -style_header IS NOT INITIAL. me->set_cell( ip_column = lv_column_alpha diff --git a/src/zexcel_s_fieldcatalog.tabl.xml b/src/zexcel_s_fieldcatalog.tabl.xml index 2b77705..30e2add 100644 --- a/src/zexcel_s_fieldcatalog.tabl.xml +++ b/src/zexcel_s_fieldcatalog.tabl.xml @@ -123,6 +123,12 @@ 0 E + + WIDTH + INT4 + 0 + E + 1 From fd2dc14ac21cc785406b29ecd27c4fe3ebfa20fe Mon Sep 17 00:00:00 2001 From: sandraros <34005250+sandraros@users.noreply.github.com> Date: Sun, 12 May 2024 11:57:33 +0200 Subject: [PATCH 2/2] Support of empty cell address by LOAD (workbook) (#1225) Fix #1081 Co-authored-by: sandraros Co-authored-by: Andrea Borgia --- src/zcl_excel_reader_2007.clas.abap | 31 +++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index 0731548..70dae56 100644 --- a/src/zcl_excel_reader_2007.clas.abap +++ b/src/zcl_excel_reader_2007.clas.abap @@ -2558,6 +2558,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lv_max_col = lv_index. ENDIF. lv_cell_row = ls_row-r. + lv_cell_column = ''. lo_row = io_worksheet->get_row( lv_cell_row ). IF ls_row-customheight = '1'. lo_row->set_row_height( ip_row_height = ls_row-ht ip_custom_height = abap_true ). @@ -2594,6 +2595,26 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_cell_elem CHANGING cp_structure = ls_cell ). + " Determine the column number + IF ls_cell-r IS NOT INITIAL. + " Note that the row should remain unchanged = the one defined by + " i.e. in ..., ls_cell-r would be "A1", + " the "1" of A1 should always be equal to the "1" of convert_columnrow2column_a_row( EXPORTING + i_columnrow = ls_cell-r + IMPORTING + e_column = lv_cell_column + e_row = lv_cell_row ). + ELSE. + " The column is the column after the last cell previously initialized in the same row. + " NB: the row is unchanged = the one defined by e.g. "1" in ... + IF lv_cell_column IS INITIAL. + lv_cell_column = 'A'. + ELSE. + lv_cell_column = zcl_excel_common=>convert_column2alpha( zcl_excel_common=>convert_column2int( lv_cell_column ) + 1 ). + ENDIF. + ENDIF. + lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name_ns( name = 'v' uri = namespace-main ). CASE ls_cell-t. @@ -2642,11 +2663,6 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_formula_elem CHANGING cp_structure = ls_formula_attributes ). IF ls_formula_attributes-t = 'shared'. - zcl_excel_common=>convert_columnrow2column_a_row( EXPORTING - i_columnrow = ls_cell-r - IMPORTING - e_column = lv_cell_column - e_row = lv_cell_row ). TRY. CLEAR ls_ref_formula. @@ -2671,11 +2687,6 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. IF lv_cell_value IS NOT INITIAL OR lv_cell_formula IS NOT INITIAL OR lv_style_guid IS NOT INITIAL. - zcl_excel_common=>convert_columnrow2column_a_row( EXPORTING - i_columnrow = ls_cell-r - IMPORTING - e_column = lv_cell_column - e_row = lv_cell_row ). io_worksheet->set_cell( ip_column = lv_cell_column " cell_elem Column ip_row = lv_cell_row " cell_elem row_elem ip_value = lv_cell_value " cell_elem Value