Skip to content

dreamph/go-excel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Basic Usage

Read

package main import ( "fmt" "log" "path/filepath" "github.com/dreamph/go-excel" ) type Data struct { ID string Name string Age int } func main() { filePath := "example/read/read.xlsx" excelFile, err := excel.OpenFile(filepath.Clean(filePath)) if err != nil { log.Fatalf(err.Error())	} defer excel.Close(excelFile) excelReader := excel.NewReader(excelFile) var result []Data err = excelReader.Read("Sheet1", 1, func(rowIndex int, rowData []string) error { data := Data{} data.ID = rowData[0] data.Name = rowData[1] result = append(result, data) return nil	}) if err != nil { fmt.Print(err.Error())	} fmt.Println(len(result)) }

Write

package main import ( "log" "path/filepath" "fmt" "github.com/dreamph/go-excel" ) func main() { filePath := "example/write/write.xlsx" excelFile, err := excel.OpenFile(filepath.Clean(filePath)) if err != nil { log.Fatalf(err.Error())	} defer excel.Close(excelFile) excelWriter := excel.NewWriter(excelFile) var list []excel.DataRef for i := 1; i < 5; i++ { list = append(list, excel.DataRef{SheetName: "Sheet1", CellName: fmt.Sprintf("C%d", i), Data: "Invalid Format", TextColor: "#1265BE"})	} err = excelWriter.WriteList(list) if err != nil { log.Fatalf(err.Error())	} err = excelWriter.SaveAs("example/write/write_1.xlsx") if err != nil { log.Fatalf(err.Error())	} /* fileBytes, err := excel.ToBytes(excelFile) if err != nil { log.Fatalf(err.Error()) } fmt.Println(fileBytes) */ }

Export Excel

package main import ( "fmt" "log" "os" "github.com/dreamph/go-excel" ) type Customer struct { Name string `json:"name"` MobileNo string `json:"mobileNo"` } func GenerateCustomerData() *[]Customer { var list []Customer for i := 1; i <= 10; i++ { list = append(list, Customer{ Name: fmt.Sprintf("Name%d", i), MobileNo: fmt.Sprintf("00000000%d", i),	})	} return &list } func main() { //GenerateExcelAsBytes for create excel by configs var configs []excel.GenerateExcelConfig[Customer] configs = append(configs, excel.GenerateExcelConfig[Customer]{ Header: "Name", Value: func(obj *Customer) string { return obj.Name	},	}) configs = append(configs, excel.GenerateExcelConfig[Customer]{ Header: "MobileNo", Value: func(obj *Customer) string { return obj.MobileNo	},	}) dataList := GenerateCustomerData() dataBytes, err := excel.GenerateExcelAsBytes("Data", excel.FirstRowIndex, &configs, dataList) if err != nil { log.Fatalln(err)	} err = WriteFile("test.xlsx", dataBytes) if err != nil { log.Fatalln(err)	} } func WriteFile(filePath string, bytes []byte) error { file, err := os.Create(filePath) if err != nil { return err	} defer func(file *os.File) { _ = file.Close()	}(file) _, err = file.Write(bytes) if err != nil { return err	} return nil } 

About

Golang Read and Write Excel

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages