go导出excel
入口函数
_, _, list, err := service.BuildingDevice.GetListV2(req)
if err != nil {
c.FailJsonExit(r, err.Error())
}
excel, err := c.DataToExcel(list)
if err != nil {
c.FailJsonExit(r, err.Error())
}
// 返回文件流
filename := "建筑设备信息"
filename = fmt.Sprintf("%s.xlsx", filename)
r.Response.Header().Set("Content-Type", "application/octet-stream")
r.Response.Header().Set("Content-Disposition", "attachment; filename=" filename)
r.Response.Header().Set("Content-Length", strconv.FormatInt(int64(excel.Len()), 10))
r.Response.Write(excel)
处理函数
"github.com/tealeg/xlsx"
func (c *buildingDevice) DataToExcel(data []*dao.BuildingDeviceListRes) (*bytes.Buffer, error) {
file := xlsx.NewFile()
sheet, err := file.AddSheet("建筑设备信息")
if err != nil {
return nil, err
}
row := sheet.AddRow()
row.AddCell().SetString("设备名称")
row.AddCell().SetString("设备类型")
row.AddCell().SetString("设备编号")
row.AddCell().SetString("规格型号")
row.AddCell().SetString("区域类型")
row.AddCell().SetString("所在楼层")
row.AddCell().SetString("设备位置")
row.AddCell().SetString("供应商")
row.AddCell().SetString("生产日期")
row.AddCell().SetString("启用日期")
row.AddCell().SetString("合同状态")
for _, v := range data {
row := sheet.AddRow()
row.AddCell().SetString(v.Name)
switch v.DeviceType {
case "1":
row.AddCell().SetString("水表")
case "2":
row.AddCell().SetString("电表")
case "3":
row.AddCell().SetString("监控")
case "4":
row.AddCell().SetString("空调")
default:
row.AddCell().SetString("")
}
row.AddCell().SetString(v.Code)
row.AddCell().SetString(v.DeviceModel)
switch v.AreaType {
case "1":
row.AddCell().SetString("室内")
default:
row.AddCell().SetString("")
}
row.AddCell().SetString(v.TheFloor)
row.AddCell().SetString(v.DeviceLocation)
row.AddCell().SetString(v.Supplier)
if v.ProduceDate.IsZero() {
row.AddCell().SetString("")
} else {
row.AddCell().SetString(v.ProduceDate.Format("2006-01-02"))
}
if v.EnableDate.IsZero() {
row.AddCell().SetString("")
} else {
row.AddCell().SetString(v.EnableDate.Format("2006-01-02"))
}
switch v.ContractStatus {
case "1":
row.AddCell().SetString("正常")
case "2":
row.AddCell().SetString("停用")
default:
row.AddCell().SetString("")
}
}
buf := new(bytes.Buffer)
file.Write(buf)
return buf, nil
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfiaika
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01