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集—如何拆分和统计单据金额

Magicodes.IE基础教程之导出Pdf

Go 单表头结构体导入导出

点晴OA系统工作流申请表单信息汇总导出到Excel视频操作指引

如何快速将excel数据导入金蝶k3系统的单据中

从零开始搭建django前后端分离项目 系列五(实战之excel流式导出)