public void getRealHeadingBasedOnCells ( int YNum , int cc , TableCandidate tc ) { int footnoteLineIndex = tc . getFootnoteBeginRow ( ) ; String [ ] [ ] cells = tc . getCells ( ) ; int i = 0 ; while ( i < footnoteLineIndex ) { int j = 0 , nonNullCellNum = 0 ; while ( j < cc ) { if ( cells [ i ] [ j ] == "" ) { break ; } nonNullCellNum ++ ; j ++ ; } if ( nonNullCellNum == cc ) break ; else i ++ ; } /* * if the next row contain unit symbols, this row has a very large possibility to be a table column heading row */ if ( ( i + 1 ) < footnoteLineIndex ) { boolean hasUnitSymbols = false ; int j = 0 ; while ( j < cc ) { if ( ( cells [ i + 1 ] [ j ] . indexOf ( "/yg rnI--" ) > 0 ) || ( cells [ i + 1 ] [ j ] . indexOf ( "(%)" ) > 0 ) || ( cells [ i + 1 ] [ j ] . indexOf ( "w-'" ) > 0 ) || ( cells [ i + 1 ] [ j ] . indexOf ( "CLg g-'" ) > 0 ) || ( cells [ i + 1 ] [ j ] . indexOf ( "pg ml-1" ) >= 0 ) ) { i ++ ; break ; } j ++ ; } } /* * Based on observation, the column heading rows always contain missing cells. * But the first data row always does not contain missing cell */ if ( i == YNum ) i = 0 ; if ( i > 0 ) i -- ; tc . setHeadingLineNumber ( i ) ; }
Adjusts the real table heading rows based on the cell information