From a44dabf05e1dd6f8fe8502692910ad0ef54d70a8 Mon Sep 17 00:00:00 2001 From: lj-wsdj <1134294381@qq.com> Date: Wed, 23 Oct 2024 13:18:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=A2=9E=E5=8A=A0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9A=E5=8F=AF=E4=BB=A5=E6=8C=87=E5=AE=9A=E4=BB=8E?= =?UTF-8?q?=E5=93=AA=E4=B8=80=E8=A1=8C=E5=BC=80=E5=A7=8B=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- export6_test.go | 9 +++++---- import1_test.go | 2 +- imports/xlsx.go | 19 ++++++++++++++----- test6.xlsx | Bin 6449 -> 6470 bytes 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/export6_test.go b/export6_test.go index 861ea3d..ddac50f 100644 --- a/export6_test.go +++ b/export6_test.go @@ -8,10 +8,10 @@ import ( ) type Data struct { - Name string `export:"true,x:1,y:1,title:项目名称"` - TotalInvest int64 `export:"true,x:2,y:1,title:总投资(万元)"` - Unit string `export:"true,x:3,y:1,title:单位"` - Remark string `export:"true,x:4,y:1,title:备注"` + Name string `export:"true,x:1,y:2,title:项目名称"` + TotalInvest int64 `export:"true,x:2,y:2,title:总投资(万元)"` + Unit string `export:"true,x:3,y:2,title:单位"` + Remark string `export:"true,x:4,y:2,title:备注"` } func TestMain(t *testing.T) { @@ -37,6 +37,7 @@ func TestMain(t *testing.T) { } exporter := export.DefaultExporter() exporter.Data = &data + exporter.Titles = nil exporter.File = "test6.xlsx" exporter.Path = "./" err := exporter.Export(0) diff --git a/import1_test.go b/import1_test.go index da53e93..dafacb7 100644 --- a/import1_test.go +++ b/import1_test.go @@ -19,7 +19,7 @@ type Data struct { func TestMain(t *testing.T) { var data []Data - importer, err := imports.NewFileImporter("./test7.xlsx", &data) + importer, err := imports.NewFileImporter("./test7.xlsx", &data, 2) if err != nil { fmt.Println(err) } diff --git a/imports/xlsx.go b/imports/xlsx.go index 9d8d29f..dc058c3 100644 --- a/imports/xlsx.go +++ b/imports/xlsx.go @@ -13,34 +13,43 @@ import ( type Importer struct { Reader io.Reader - Sheets []string + Sheets []string //Sheet页 xlsxFile *excelize.File + startRow int // 从第几行开始读取数据 Data interface{} } -func NewFileImporter(file string, data any) (*Importer, error) { +func NewFileImporter(file string, data any, start_row int) (*Importer, error) { f, err := excelize.OpenFile(file) if err != nil { return nil, err } sheets := f.GetSheetList() + if start_row <= 0 { + start_row = 1 + } return &Importer{ xlsxFile: f, Sheets: sheets, Data: data, + startRow: start_row, }, nil } -func NewFileReaderImporter(reader io.Reader, data any) (*Importer, error) { +func NewFileReaderImporter(reader io.Reader, data any, start_row int) (*Importer, error) { f, err := excelize.OpenReader(reader) if err != nil { return nil, err } sheets := f.GetSheetList() + if start_row <= 0 { + start_row = 1 + } return &Importer{ xlsxFile: f, Sheets: sheets, Data: data, + startRow: start_row, }, nil } @@ -81,8 +90,8 @@ func (i *Importer) dealFile(sheetIndex int) error { rowIndex := 0 for rows.Next() { rowIndex += 1 - // 第一行为表头 - if rowIndex > 1 { + // 从第几行开始读取数据 + if rowIndex >= i.startRow { row, err := rows.Columns() if err != nil { return err diff --git a/test6.xlsx b/test6.xlsx index 43d945ea106c711dc085a4d2b6d6042171b47d28..70d155970caf382c54fae0766213547043eb2715 100755 GIT binary patch delta 490 zcmVJYW(Zx)5m-Kz&_C4x)mqVkNxUH|9o<`Mg4z;l7Cl$Wi{tL)M7ivs4F@2>N6;}CiMB?Ow z)qi9gy6g6uUuu86#z@QIA~5Qw#d6dTR!!q|>xKu;sIxtC1I?%yibsNxAJd`6!{MCS zk{0J7`j6P=MERQ7<;40m(d5KkBnoHyC{{+Xa*UKW5t4}I#3~WXiA^Gw6QAbAR#9w~ zMeY-^ocNrG0PmCT7(E8C761SM09zaRbN~PV delta 469 zcmV;`0V@8+GO;qS=oEj;Zk#X_hWC96%lnRjNum@PN0~uUyQ_L#JLWK0@nvM2VIIFS z6iNVTxNu@3SGc?X-$FCU4ju9VJm4)1^)Tt<>MoMVjpN{-J5R!0=jBt ze1V$~&N(4oG@!ZP*)y1{R<(7S2fwrKMEuzSulkTyBukP9qPc%Gc<7M3|LI}tS_&ww zXf>EHG;yGKkkcG7U1?8~l>c`B{wufBg;$M1ZQm!L@)< z+~cdYZ*l%hRp2BxniBJR?DW#Bes!pVnzt%^v)yNqrzR9Qy`Rz}#i+2#_g^GhAFTc@ ztI&+gYkn>89Y%jz#*4tH8z!?}Ls&I@$E8aiIHS&X$VHk_5sT*(Bj2Y(f#cy^SVGAq zM*k9rHIcn1j%(uXJyEWShlwE0c9U2(iDi8xn?)WMVr$~lLTpW>i`|tQNV=`IpVap2 z%;HE68_0ekw}C8=Z3DSq$dTFQYH%kwf>Is{+nNwx$80lneD3-1;-~Qya!B*T4dj^S z#~VnQ=H(LkS9?au^p9YF0ssL2|4>T@2q~^md8GjW09LcD7EJ;PDXvg?r2zl{R+9r6 LJqDW=00000ow(nT