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 43d945e..70d1559 100755 Binary files a/test6.xlsx and b/test6.xlsx differ