Skip to content

Commit d296683

Browse files
authored
Merge pull request #11 from noborus/cellname-y
Also consider cellname as y
2 parents b28eb1c + 0eda609 commit d296683

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

reader.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)