go客户之导出excel
Posted zzxiaoma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go客户之导出excel相关的知识,希望对你有一定的参考价值。
通过点击导出按钮把单据内容全部导出到excel中,先添加路由
r.HandleFunc("/cusexcel", web.Cusexcel)
通过web.Cusexcel方法进行导出
func Cusexcel(w http.ResponseWriter, r *http.Request)
cutomers, _ := dbdata.Cuslist()
f := excelize.NewFile()
index := f.NewSheet("Sheet1")
data := [][]interface"序号", "名称", "税号", "地址", "联系人", "联系电话", "联系内容"
for _, cutomer := range cutomers
row := []interface
cutomer.Id,
cutomer.Name,
cutomer.Taxno,
cutomer.Addr,
cutomer.Contact,
cutomer.Contel,
cutomer.Content,
data = append(data, row)
for i, obj := range data
//--根据行和列拼接单元格名称
name, err := excelize.JoinCellName("A", i+1)
if err != nil
fmt.Println(fmt.Sprintf("拼接单元格名称失败,错误:%s", err))
return
err = f.SetSheetRow("Sheet1", name, &obj)
if err != nil
fmt.Println(fmt.Sprintf("按行写入数据失败,错误:%s", err))
return
f.SetActiveSheet(index)
filename := "客户.xlsx"
w.Header().Add("Content-Type", "application/vnd.ms-excel")
w.Header().Add("Content-Disposition", "attachment; filename="+filename)
f.Write(w)
先从数据库中查询所有记录存入切片,然后创建文件,数据以二维的切片形式进行组织,然后循环数据创建单元格和数据的对应关系,最后设置header信息以下载文件的方式返回。导出excel需要引入第三方库github.com/xuri/excelize/v2
以上是关于go客户之导出excel的主要内容,如果未能解决你的问题,请参考以下文章
准时下班系列!Excel合集之第6集—如何拆分和统计单据金额