@@ -162,9 +162,16 @@ exports.GetTablePreview = (sid, sheet, table, count=10) => {
162162 const tableRange = tableRangeContainer . range
163163 const tableRowCount = tableRange . end . row - tableRange . start . row
164164 const tableColumnCount = tableRange . end . column - tableRange . start . column + 1 //need to add 1 otherwise it will drop the last column
165+ const headerRange = this . GetTableHeader ( sid , sheet , table )
166+ if ( headerRange == null ) {
167+ tableStart = { row : tableRange . start . row , column : tableRange . start . column } //if 1st row not header include in table (preview) range
168+ } else {
169+ tableStart = { row : tableRange . start . row + 1 , column : tableRange . start . column } //if 1st row is header, dont include in (preview) range
170+ } ;
171+
165172 const tablePreview = backend . SessionGetInputSampleRows ( sid , {
166173 sheet : sheet ,
167- start : { row : tableRange . start . row + 1 , column : tableRange . start . column } , //skip first row assuming it is header
174+ start : tableStart ,
168175 end : tableRange . end
169176 } , Math . min ( count , tableRowCount ) , 0 , 0 ) [ 0 ] ;
170177
@@ -213,24 +220,38 @@ exports.GetTableHeader = (sid, sheet, table) => {
213220 const tableRangeContainer = backend . SessionGetInputTableRanges ( sid , sheet ) . get ( table ) ;
214221 assert ( tableRangeContainer , `Table Range ${ table } not found in ${ sheet } ` )
215222 const tableRange = tableRangeContainer . range
223+ const tableColumnCount = tableRange . end . column - tableRange . start . column + 1 //need to add 1 otherwise it will drop the last column
216224
217225 const headerRange = {
218- start : tableRange . start ,
219- end : { row : tableRange . start . row , column : tableRange . end . column }
226+ start : { row : tableRange . start . row , column : tableRange . start . column } ,
227+ end : { row : tableRange . start . row , column : tableRange . end . column }
220228 }
221-
222229 const headerPreview = backend . SessionGetInputSampleRows ( sid , {
223230 sheet : sheet ,
224- start : headerRange . start ,
225- end : headerRange . end
226- } )
231+ start : tableRange . start ,
232+ end : tableRange . end
233+ } , 1 , 0 , 0 ) [ 0 ] ;
234+ headerRow = processMergedCells ( tableColumnCount , headerPreview )
227235
228- const headerList = headerPreview . row ;
229- const columnList = tableRangeContainer . columns ;
236+ const headerList = [ ] ;
237+ for ( var i = 0 ; i < headerRow [ 0 ] . row . length ; i ++ ) {
238+ headerList . push ( headerRow [ 0 ] . row [ i ] . value )
239+ }
240+ const columnRow = tableRangeContainer . columns ;
241+ const columnList = [ ] ;
242+ for ( var i = 0 ; i < columnRow . length ; i ++ ) {
243+ columnList . push ( columnRow [ i ] . name )
244+ }
230245
231- if ( headerList != columnList ) {
246+ if ( headerList . length != columnList . length ) {
232247 return null ;
233248 }
249+ for ( var i = 0 ; i < headerList . length ; i ++ ) {
250+ if ( headerList [ i ] != columnList [ i ] ) {
251+ return null ;
252+ }
253+ }
254+
234255
235256 return headerRange ;
236257
0 commit comments