Skip to content

Commit 6c54dd2

Browse files
committed
升级 github.com/tealeg/xlsx/v3
1 parent 14bbd18 commit 6c54dd2

File tree

5 files changed

+67
-21
lines changed

5 files changed

+67
-21
lines changed

data_engine/excel.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package data_engine
33
import (
44
"errors"
55
"fmt"
6-
"github.com/tealeg/xlsx"
6+
"github.com/tealeg/xlsx/v3"
77
"github.com/team-ide/go-tool/util"
88
"go.uber.org/zap"
99
"time"
@@ -100,17 +100,20 @@ func (this_ *ExcelTask) do() (err error) {
100100
if this_.needStop() {
101101
return
102102
}
103-
104-
row := sheet.Rows[rowIndex]
103+
var row *xlsx.Row
104+
row, err = sheet.Row(rowIndex)
105+
if err != nil {
106+
return
107+
}
105108

106109
var data = map[string]interface{}{}
107110

108111
hasValue := false
109112
for cellIndex, name := range nameList {
110-
if cellIndex >= len(row.Cells) {
113+
cell := row.GetCell(cellIndex)
114+
if cell == nil {
111115
break
112116
}
113-
cell := row.Cells[cellIndex]
114117
var value = cell.String()
115118
data[name] = value
116119
if value != "" {

datamove/datasource_excel.go

+32-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package datamove
33
import (
44
"errors"
55
"fmt"
6-
"github.com/tealeg/xlsx"
6+
"github.com/tealeg/xlsx/v3"
77
"github.com/team-ide/go-dialect/dialect"
88
"github.com/team-ide/go-tool/util"
99
"go.uber.org/zap"
@@ -58,9 +58,22 @@ func (this_ *DataSourceExcel) ReadStart(progress *Progress) (err error) {
5858
return
5959
}
6060
var titles []string
61-
if len(this_.readSheet.Cols) > 0 {
62-
for _, c := range this_.readSheet.Rows[0].Cells {
63-
s := c.String()
61+
62+
colLen := this_.readSheet.Cols.Len
63+
rowLen := this_.readSheet.MaxRow
64+
if rowLen > 0 && colLen > 0 {
65+
var firstRow *xlsx.Row
66+
firstRow, err = this_.readSheet.Row(0)
67+
if err != nil {
68+
return
69+
}
70+
71+
for colIndex := 0; colIndex < colLen; colIndex++ {
72+
cell := firstRow.GetCell(colIndex)
73+
if cell == nil {
74+
break
75+
}
76+
s := cell.String()
6477
titles = append(titles, s)
6578
}
6679
}
@@ -172,7 +185,7 @@ func (this_ *DataSourceExcel) CloseWriteFile() {
172185
}
173186

174187
func (this_ *DataSourceExcel) ReadLineCount() (lineCount int64, err error) {
175-
lineCount = int64(len(this_.readSheet.Rows))
188+
lineCount = int64(this_.readSheet.MaxRow)
176189
util.Logger.Info("excel data source read line count", zap.Any("lineCount", lineCount))
177190
return
178191
}
@@ -183,13 +196,24 @@ func (this_ *DataSourceExcel) Read(progress *Progress, dataChan chan *Data) (err
183196
DataType: DataTypeCols,
184197
}
185198
pageSize := progress.BatchNumber
186-
for _, row := range this_.readSheet.Rows {
199+
colLen := this_.readSheet.Cols.Len
200+
rowLen := this_.readSheet.MaxRow
201+
var row *xlsx.Row
202+
for rowIndex := 0; rowIndex < rowLen; rowIndex++ {
203+
row, err = this_.readSheet.Row(rowIndex)
204+
if err != nil {
205+
return
206+
}
187207
if progress.ShouldStop() {
188208
return
189209
}
190210
var cols []interface{}
191-
for _, c := range row.Cells {
192-
cols = append(cols, c.String())
211+
for colIndex := 0; colIndex < colLen; colIndex++ {
212+
cell := row.GetCell(colIndex)
213+
if cell == nil {
214+
break
215+
}
216+
cols = append(cols, cell.String())
193217
}
194218

195219
if !this_.headerRead {

go.mod

+9-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ require (
1818
github.com/makiuchi-d/gozxing v0.1.1
1919
github.com/olivere/elastic/v7 v7.0.32
2020
github.com/shopspring/decimal v1.4.0
21-
github.com/tealeg/xlsx v1.0.5
21+
github.com/tealeg/xlsx/v3 v3.3.10
2222
github.com/team-ide/cron v1.0.1
23-
github.com/team-ide/go-dialect v1.9.22
23+
github.com/team-ide/go-dialect v1.9.23
2424
github.com/team-ide/go-driver v1.3.4
2525
github.com/team-ide/go-interpreter v0.1.2
2626
go.mongodb.org/mongo-driver v1.15.0
@@ -43,6 +43,7 @@ require (
4343
github.com/eapache/go-resiliency v1.3.0 // indirect
4444
github.com/eapache/go-xerial-snappy v0.0.0-20230111030713-bf00bc1b83b6 // indirect
4545
github.com/eapache/queue v1.1.0 // indirect
46+
github.com/frankban/quicktest v1.14.6 // indirect
4647
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
4748
github.com/gin-contrib/sse v0.1.0 // indirect
4849
github.com/go-logfmt/logfmt v0.5.1 // indirect
@@ -55,6 +56,7 @@ require (
5556
github.com/godror/godror v0.37.0 // indirect
5657
github.com/godror/knownpb v0.1.0 // indirect
5758
github.com/golang/snappy v0.0.4 // indirect
59+
github.com/google/btree v1.0.0 // indirect
5860
github.com/google/go-cmp v0.5.9 // indirect
5961
github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect
6062
github.com/hashicorp/errwrap v1.0.0 // indirect
@@ -70,6 +72,7 @@ require (
7072
github.com/klauspost/compress v1.15.14 // indirect
7173
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
7274
github.com/kr/pretty v0.3.1 // indirect
75+
github.com/kr/text v0.2.0 // indirect
7376
github.com/leodido/go-urn v1.4.0 // indirect
7477
github.com/mailru/easyjson v0.7.7 // indirect
7578
github.com/mattn/go-isatty v0.0.20 // indirect
@@ -78,9 +81,13 @@ require (
7881
github.com/modern-go/reflect2 v1.0.2 // indirect
7982
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
8083
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
84+
github.com/peterbourgon/diskv/v3 v3.0.1 // indirect
8185
github.com/pierrec/lz4/v4 v4.1.17 // indirect
8286
github.com/pkg/errors v0.9.1 // indirect
8387
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
88+
github.com/rogpeppe/fastuuid v1.2.0 // indirect
89+
github.com/rogpeppe/go-internal v1.12.0 // indirect
90+
github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa // indirect
8491
github.com/tjfoc/gmsm v1.4.1 // indirect
8592
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
8693
github.com/ugorji/go/codec v1.2.12 // indirect

go.sum

+17-5
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
4545
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
4646
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
4747
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
48+
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
49+
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
4850
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
4951
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
5052
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
@@ -91,6 +93,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq
9193
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
9294
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
9395
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
96+
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
97+
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
9498
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
9599
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
96100
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -169,19 +173,27 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
169173
github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
170174
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
171175
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
176+
github.com/peterbourgon/diskv/v3 v3.0.1 h1:x06SQA46+PKIUftmEujdwSEpIx8kR+M9eLYsUxeYveU=
177+
github.com/peterbourgon/diskv/v3 v3.0.1/go.mod h1:kJ5Ny7vLdARGU3WUuy6uzO6T0nb/2gWcT1JiBvRmb5o=
172178
github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc=
173179
github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
174180
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
175181
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
176182
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
183+
github.com/pkg/profile v1.5.0 h1:042Buzk+NhDI+DeSAA62RwJL8VAuZUMQZUjCsRz1Mug=
177184
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
178185
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
179186
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
180187
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
181188
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
189+
github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s=
190+
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
182191
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
183192
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
184193
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
194+
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
195+
github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa h1:2cO3RojjYl3hVTbEvJVqrMaFmORhL6O06qdW42toftk=
196+
github.com/shabbyrobe/xmlwriter v0.0.0-20200208144257-9fca06d00ffa/go.mod h1:Yjr3bdWaVWyME1kha7X0jsz3k2DgXNa1Pj3XGyUAbx8=
185197
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
186198
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
187199
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -197,12 +209,12 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
197209
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
198210
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
199211
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
200-
github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
201-
github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
212+
github.com/tealeg/xlsx/v3 v3.3.10 h1:hz4MO213nguwiz69QI6MkbYWcqhC3tEnXsBf2Eaqtog=
213+
github.com/tealeg/xlsx/v3 v3.3.10/go.mod h1:KV4FTFtvGy0TBlOivJLZu/YNZk6e0Qtk7eOSglWksuA=
202214
github.com/team-ide/cron v1.0.1 h1:CrkjAOsS76g76ZsFOTBCZpzjm9GlUxwfPv85vq4vmZQ=
203215
github.com/team-ide/cron v1.0.1/go.mod h1:0o4pG9buGit9ZDS6CeKyUcMG95HErba2edMMyXE+i2A=
204-
github.com/team-ide/go-dialect v1.9.22 h1:8SPUFDtjSI4FBZBDKhahKh2Wr4VA2t3kK/kH38Miwdo=
205-
github.com/team-ide/go-dialect v1.9.22/go.mod h1:kdU5EKvqAoTZpT6Crde7wiNna/jfv6P6ae6WlaZVE7I=
216+
github.com/team-ide/go-dialect v1.9.23 h1:uwTwCkILSBXWvjOBsq2zDJNBg9TkK206kuW9uvN/c48=
217+
github.com/team-ide/go-dialect v1.9.23/go.mod h1:2k0TuEO4eyzDhAln6P3fteEIPYD6rh992T9kgIKuxaU=
206218
github.com/team-ide/go-driver v1.3.4 h1:FXlX2KmeV0zGlk4QGEg+ECjcN/BX1I9zYDF6DnSfFjQ=
207219
github.com/team-ide/go-driver v1.3.4/go.mod h1:UhcuTAQRnvBUZXJeOA06eGJDeTqScJyfhyjpyzh3lxg=
208220
github.com/team-ide/go-interpreter v0.1.2 h1:m2C973+Wmp0GJ8khjZJfTjDCs9uRKCnMjm7is6+UkUo=
@@ -289,6 +301,7 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn
289301
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
290302
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
291303
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
304+
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
292305
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
293306
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
294307
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
@@ -325,7 +338,6 @@ google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFW
325338
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
326339
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
327340
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
328-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
329341
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
330342
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
331343
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"version": "1.2.25"
2+
"version": "1.2.26"
33
}

0 commit comments

Comments
 (0)