parent
370df7541a
commit
a44dabf05e
|
@ -8,10 +8,10 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Data struct {
|
type Data struct {
|
||||||
Name string `export:"true,x:1,y:1,title:项目名称"`
|
Name string `export:"true,x:1,y:2,title:项目名称"`
|
||||||
TotalInvest int64 `export:"true,x:2,y:1,title:总投资(万元)"`
|
TotalInvest int64 `export:"true,x:2,y:2,title:总投资(万元)"`
|
||||||
Unit string `export:"true,x:3,y:1,title:单位"`
|
Unit string `export:"true,x:3,y:2,title:单位"`
|
||||||
Remark string `export:"true,x:4,y:1,title:备注"`
|
Remark string `export:"true,x:4,y:2,title:备注"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(t *testing.T) {
|
func TestMain(t *testing.T) {
|
||||||
|
@ -37,6 +37,7 @@ func TestMain(t *testing.T) {
|
||||||
}
|
}
|
||||||
exporter := export.DefaultExporter()
|
exporter := export.DefaultExporter()
|
||||||
exporter.Data = &data
|
exporter.Data = &data
|
||||||
|
exporter.Titles = nil
|
||||||
exporter.File = "test6.xlsx"
|
exporter.File = "test6.xlsx"
|
||||||
exporter.Path = "./"
|
exporter.Path = "./"
|
||||||
err := exporter.Export(0)
|
err := exporter.Export(0)
|
||||||
|
|
|
@ -19,7 +19,7 @@ type Data struct {
|
||||||
|
|
||||||
func TestMain(t *testing.T) {
|
func TestMain(t *testing.T) {
|
||||||
var data []Data
|
var data []Data
|
||||||
importer, err := imports.NewFileImporter("./test7.xlsx", &data)
|
importer, err := imports.NewFileImporter("./test7.xlsx", &data, 2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,34 +13,43 @@ import (
|
||||||
|
|
||||||
type Importer struct {
|
type Importer struct {
|
||||||
Reader io.Reader
|
Reader io.Reader
|
||||||
Sheets []string
|
Sheets []string //Sheet页
|
||||||
xlsxFile *excelize.File
|
xlsxFile *excelize.File
|
||||||
|
startRow int // 从第几行开始读取数据
|
||||||
Data interface{}
|
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)
|
f, err := excelize.OpenFile(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
sheets := f.GetSheetList()
|
sheets := f.GetSheetList()
|
||||||
|
if start_row <= 0 {
|
||||||
|
start_row = 1
|
||||||
|
}
|
||||||
return &Importer{
|
return &Importer{
|
||||||
xlsxFile: f,
|
xlsxFile: f,
|
||||||
Sheets: sheets,
|
Sheets: sheets,
|
||||||
Data: data,
|
Data: data,
|
||||||
|
startRow: start_row,
|
||||||
}, nil
|
}, 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)
|
f, err := excelize.OpenReader(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
sheets := f.GetSheetList()
|
sheets := f.GetSheetList()
|
||||||
|
if start_row <= 0 {
|
||||||
|
start_row = 1
|
||||||
|
}
|
||||||
return &Importer{
|
return &Importer{
|
||||||
xlsxFile: f,
|
xlsxFile: f,
|
||||||
Sheets: sheets,
|
Sheets: sheets,
|
||||||
Data: data,
|
Data: data,
|
||||||
|
startRow: start_row,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,8 +90,8 @@ func (i *Importer) dealFile(sheetIndex int) error {
|
||||||
rowIndex := 0
|
rowIndex := 0
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
rowIndex += 1
|
rowIndex += 1
|
||||||
// 第一行为表头
|
// 从第几行开始读取数据
|
||||||
if rowIndex > 1 {
|
if rowIndex >= i.startRow {
|
||||||
row, err := rows.Columns()
|
row, err := rows.Columns()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
BIN
test6.xlsx
BIN
test6.xlsx
Binary file not shown.
Loading…
Reference in New Issue