diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 542ad56..5916fb5 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -5127,21 +5127,31 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION. method UPDATE_DIMENSION_RANGE. data: LS_SHEET_CONTENT type ZEXCEL_S_CELL_DATA, - LT_SHEET_CONTENT type ZEXCEL_T_CELL_DATA_UNSORTED, LV_ROW_ALPHA type STRING, LV_COLUMN_ALPHA type ZEXCEL_CELL_COLUMN_ALPHA. check SHEET_CONTENT is not initial. -* update dimension range - LT_SHEET_CONTENT = SHEET_CONTENT. - "upper left corner - sort LT_SHEET_CONTENT by CELL_ROW. - read table LT_SHEET_CONTENT index 1 into LS_SHEET_CONTENT. - UPPER_CELL-CELL_ROW = LS_SHEET_CONTENT-CELL_ROW. - sort LT_SHEET_CONTENT by CELL_COLUMN. - read table LT_SHEET_CONTENT index 1 into LS_SHEET_CONTENT. - UPPER_CELL-CELL_COLUMN = LS_SHEET_CONTENT-CELL_COLUMN. + UPPER_CELL-CELL_ROW = ZCL_EXCEL_COMMON=>C_EXCEL_SHEET_MAX_ROW. + UPPER_CELL-CELL_COLUMN = ZCL_EXCEL_COMMON=>C_EXCEL_SHEET_MAX_COL. + + LOWER_CELL-CELL_ROW = ZCL_EXCEL_COMMON=>C_EXCEL_SHEET_MIN_ROW. + LOWER_CELL-CELL_COLUMN = ZCL_EXCEL_COMMON=>C_EXCEL_SHEET_MIN_COL. + + loop at SHEET_CONTENT into LS_SHEET_CONTENT. + if UPPER_CELL-CELL_ROW > LS_SHEET_CONTENT-CELL_ROW. + UPPER_CELL-CELL_ROW = LS_SHEET_CONTENT-CELL_ROW. + endif. + if UPPER_CELL-CELL_COLUMN > LS_SHEET_CONTENT-CELL_COLUMN. + UPPER_CELL-CELL_COLUMN = LS_SHEET_CONTENT-CELL_COLUMN. + endif. + if LOWER_CELL-CELL_ROW < LS_SHEET_CONTENT-CELL_ROW. + LOWER_CELL-CELL_ROW = LS_SHEET_CONTENT-CELL_ROW. + endif. + if LOWER_CELL-CELL_COLUMN < LS_SHEET_CONTENT-CELL_COLUMN. + LOWER_CELL-CELL_COLUMN = LS_SHEET_CONTENT-CELL_COLUMN. + endif. + endloop. LV_ROW_ALPHA = UPPER_CELL-CELL_ROW. LV_COLUMN_ALPHA = ZCL_EXCEL_COMMON=>CONVERT_COLUMN2ALPHA( UPPER_CELL-CELL_COLUMN ). @@ -5149,14 +5159,6 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION. shift LV_ROW_ALPHA left deleting leading SPACE. concatenate LV_COLUMN_ALPHA LV_ROW_ALPHA into UPPER_CELL-CELL_COORDS. - "bottom right corner - sort LT_SHEET_CONTENT by CELL_ROW descending. - read table LT_SHEET_CONTENT index 1 into LS_SHEET_CONTENT. - LOWER_CELL-CELL_ROW = LS_SHEET_CONTENT-CELL_ROW. - sort LT_SHEET_CONTENT by CELL_COLUMN descending. - read table LT_SHEET_CONTENT index 1 into LS_SHEET_CONTENT. - LOWER_CELL-CELL_COLUMN = LS_SHEET_CONTENT-CELL_COLUMN. - LV_ROW_ALPHA = LOWER_CELL-CELL_ROW. LV_COLUMN_ALPHA = ZCL_EXCEL_COMMON=>CONVERT_COLUMN2ALPHA( LOWER_CELL-CELL_COLUMN ). shift LV_ROW_ALPHA right deleting trailing SPACE.