parent
370df7541a
commit
a44dabf05e
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
BIN
test6.xlsx
BIN
test6.xlsx
Binary file not shown.
Loading…
Reference in New Issue