Go操作CSV相关功能】

本文介绍了如何使用Go语言进行CSV文件的操作,包括从浏览器导出CSV数据以及生成并保存到指定路径的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Go操作CSV相关功能

  • 访问浏览器导出csv功能
package main

import (
	"bytes"
	"encoding/csv"
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", hello)
	http.ListenAndServe(":9090", nil)
}

func hello(w http.ResponseWriter, r *http.Request) {
	buff := new(bytes.Buffer)
	buff.WriteString("\xEF\xBB\xBF")
	csvWriter := csv.NewWriter(buff)

	// 报表头
	csvWriter.Write([]string{
		"编号", "订单号", "发起时间", "接单时间",
	})
	
	// 报表数据
	record1 := []string{"1", "20233445456", "2023-03-08 13:20:00", "2023-03-08 13:20:00"}
	csvWriter.Write(record1)
	record2 := []string{"2", "20233445456", "2023-03-08 13:20:00", "2023-03-08 13:20:00"}
	csvWriter.Write(record2)
	csvWriter.Flush()

	w.Header().Set("Content-Type", "application/force-download")
	w.Header().Set("Accept-Ranges", "bytes")
	w.Header().Set("Content-Disposition", fmt.Sprintf(`attachment;filename=%s`, "demo.csv"))
	w.Write(buff.Bytes())
}
  • 生成csv文件存放指定路径下

func main() {
	filename := "demo.csv"
	header := []string{"名称", "数量", "金额"}
	var body [][]string
	body = append(body, []string{"1", "2", "3"})
	writeCSV(filename, header, body)
}

func writeCSV(filename string, header []string, body [][]string) error {
	f, err := os.Create(filepath.Join("./", filename))
	if err != nil {
		return err
	}
	defer f.Close()

	_, err = f.WriteString("\xEF\xBB\xBF")
	if err != nil {
		return err
	}
	w := csv.NewWriter(f)
	_ = w.Write(header)
	_ = w.WriteAll(body)
	w.Flush()
	return nil
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值