CSV文件
往csv文件写
f, err := os.Create("test.csv")
if err != nil {
fmt.Println(err)
}
defer f.Close()
f.WriteString("\xEF\xBB\xBF")
w := csv.NewWriter(f)
data := [][]string{
{"1", "刘备", "23"},
{"2", "张飞", "23"},
{"3", "关羽", "23"},
{"4", "赵云", "23"},
{"5", "黄忠", "23"},
{"6", "马超", "23"},
}
w.WriteAll(data)
w.Flush()
读
func readCsv(fileName string) {
fs, err := os.Open(fileName)
if err != nil {
log.Fatalf("can not open the file, err is %+v", err)
}
defer fs.Close()
r := csv.NewReader(bufio.NewReader(fs))
for {
row, err := r.Read()
if err != nil && err != io.EOF {
fmt.Printf("can not read, err is %+v", err)
}
if err == io.EOF {
break
}
fmt.Println(row)
}
}
XLSX文件
github.com/xuri/excelize/v2
github.com/xuri/excelize/v2
创建文件
func createXlsxFile(fileName string) {
if !strings.HasSuffix(fileName, ".xlsx") {
return
}
f := excelize.NewFile()
index, err := f.NewSheet("sheet1")
if err != nil {
fmt.Println("newSheeet err=", err)
return
}
f.SetActiveSheet(index)
if err := f.SaveAs(fileName); err != nil {
fmt.Println(err)
}
}
写文件
func writeXlsxFile(file, sheetName string) {
f, err := excelize.OpenFile(file)
if err != nil {
fmt.Println("writeXlsxFile opnefile err=", err)
return
}
for i := 0; i < 1000; i++ {
f.SetCellValue(sheetName, "A"+strconv.Itoa(i+1), "0001320515")
if i%10 == 0 {
if err := f.SaveAs(file); err != nil {
fmt.Println("SaveAs err=", err.Error())
}
}
}
}
读文件
func readXlsxFile(fileName, sheetName string) {
f, err := excelize.OpenFile(fileName)
if err != nil {
fmt.Println(err)
return
}
rows, err := f.GetRows(sheetName)
if err != nil {
fmt.Println("getRows ERR =", err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
github.com/tealeg/xlsx/v3
github.com/tealeg/xlsx/v3
write
func XlsxWrite(fileName, sheetName string) {
file := xlsx.NewFile()
sheet, err := file.AddSheet(sheetName)
if err != nil {
fmt.Println("addSheet err =", err)
return
}
for i := 0; i < 10; i++ {
row := sheet.AddRow()
row.AddCell().SetString("000212325")
}
err = file.Save(fileName)
if err != nil {
fmt.Println("file save err =", err)
return
}
}
read
func XlsxRead(fileName, sheetName string) {
xlsxFile, err := xlsx.OpenFile(fileName)
if err != nil {
fmt.Println("xlsx opne file err = ", err)
return
}
for _, sheet := range xlsxFile.Sheets {
fmt.Println("sheet name:", sheet.Name)
for i := 1; i < sheet.MaxRow; i++ {
r, _ := sheet.Row(i)
fmt.Println(r.GetCell(0).String(), "---", r.GetCell(1).String())
}
}
}