@@ -46,6 +46,7 @@ func NewXLSXReader(reader io.Reader, opts *trdsql.ReadOpts) (trdsql.Reader, erro
4646 }
4747 isFilter = true
4848 cellX --
49+ cellY --
4950 }
5051
5152 rows , err := f .GetRows (sheet )
@@ -54,10 +55,7 @@ func NewXLSXReader(reader io.Reader, opts *trdsql.ReadOpts) (trdsql.Reader, erro
5455 }
5556
5657 r := XLSXReader {}
57- skip := 0
58- if cellY > 0 {
59- skip = cellY - 1
60- }
58+ skip := cellY
6159 if opts .InSkip > 0 {
6260 skip = opts .InSkip
6361 }
@@ -87,15 +85,15 @@ func NewXLSXReader(reader io.Reader, opts *trdsql.ReadOpts) (trdsql.Reader, erro
8785 }
8886 }
8987
90- r .names , r .types = nameType (rows [header ], cellX , columnNum , opts .InHeader )
88+ r .names , r .types = nameType (rows [header ], cellX , cellY , columnNum , opts .InHeader )
9189 rowNum := len (rows ) - skip
9290 body := make ([][]any , 0 , rowNum )
9391 validColumns := make ([]bool , columnNum )
9492 for i := 0 ; i < len (r .names ); i ++ {
9593 if r .names [i ] != "" {
9694 validColumns [i ] = true
9795 } else {
98- name , err := cellName (cellX + i )
96+ name , err := cellName (cellX + i , cellY )
9997 if err != nil {
10098 return nil , err
10199 }
@@ -134,8 +132,8 @@ func NewXLSXReader(reader io.Reader, opts *trdsql.ReadOpts) (trdsql.Reader, erro
134132 return r , nil
135133}
136134
137- func cellName (i int ) (string , error ) {
138- cn , err := excelize .CoordinatesToCellName (i + 1 , 1 )
135+ func cellName (x int , y int ) (string , error ) {
136+ cn , err := excelize .CoordinatesToCellName (x + 1 , y + 1 )
139137 if err != nil {
140138 return "" , err
141139 }
@@ -195,15 +193,15 @@ func parseExtend(ext string) (string, string) {
195193 }
196194}
197195
198- func nameType (row []string , cellX int , columnNum int , header bool ) ([]string , []string ) {
196+ func nameType (row []string , cellX int , cellY int , columnNum int , header bool ) ([]string , []string ) {
199197 nameMap := make (map [string ]bool )
200198 names := make ([]string , columnNum )
201199 types := make ([]string , columnNum )
202200 c := 0
203201 for i := cellX ; i < cellX + columnNum ; i ++ {
204202 if header && len (row ) > i && row [i ] != "" {
205203 if _ , ok := nameMap [row [i ]]; ok {
206- name , err := cellName (cellX + i )
204+ name , err := cellName (cellX + i , cellY )
207205 if err != nil {
208206 names [c ] = row [i ] + "_" + fmt .Sprint (i )
209207 } else {
0 commit comments