|
- package utils
-
- import (
- "applet/app/db/model"
- "bytes"
- "encoding/csv"
- "fmt"
- "github.com/360EntSecGroup-Skylar/excelize"
- "github.com/gin-gonic/gin"
- "io/ioutil"
- )
-
- func Output(c *gin.Context, name string, data map[string]string) string {
- //创建excel文件
- xlsx := excelize.NewFile()
- //创建新表单
- index := xlsx.NewSheet(name)
- for k, v := range data {
- //设置单元格的值
- xlsx.SetCellValue(name, k, v)
- }
- //设置默认打开的表单
- xlsx.SetActiveSheet(index)
- ////保存文件到指定路径
- //err := xlsx.SaveAs("./" + name + ".xlsx")
- //if err != nil {
- // log.Fatal(err)
- //}
- //_ = file.Save(fileName)
- c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, name+".xlsx"))
- c.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
- var buffer bytes.Buffer
- _ = xlsx.Write(&buffer)
- r := bytes.NewReader(buffer.Bytes())
- fSrc, _ := ioutil.ReadAll(r)
- str := "data:application/vnd.ms-excel;base64," + Base64RawStdEncode(string(fSrc))
- return str
- }
- func OutputSecond(c *gin.Context, name string, data *[]model.CommunityTeamStoreWithdrawApply) string {
- bytesBuffer := &bytes.Buffer{}
- _, _ = bytesBuffer.WriteString("\xEF\xBB\xBF") //写入UTF-8 BOM 防止乱码
- writer := csv.NewWriter(bytesBuffer)
- writer.Write([]string{"支付宝批量付款文件模板"})
- writer.Write([]string{"序号(必填)", "收款方支付宝账号(必填)", "收款方姓名(必填)", "金额(必填,单位:元)", "备注(选填)"})
- if data != nil {
- for _, v := range *data {
- writer.Write([]string{Int64ToStr(v.Id), v.WithdrawAccount, v.WithdrawName, v.Amount, "门店提现"})
- }
- }
-
- writer.Flush() // 此时才会将缓冲区数据写入
- c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, name+".csv"))
- c.Header("Content-Type", "application/force-download")
- c.Header("Accept-Ranges", "bytes")
- r := bytes.NewReader(bytesBuffer.Bytes())
- fSrc, _ := ioutil.ReadAll(r)
- str := "data:text/csv;charset=utf-8;base64," + Base64RawStdEncode(string(fSrc))
- fmt.Println(str)
-
- return str
- }
-
- //func OutputSecond(c *gin.Context, name string, data []map[string]string) string {
- // bytesBuffer := &bytes.Buffer{}
- // _, _ = bytesBuffer.WriteString("\xEF\xBB\xBF") //写入UTF-8 BOM 防止乱码
- // writer := csv.NewWriter(bytesBuffer)
- // writer.Write([]string{"支付宝批量付款文件模板"})
- // writer.Write([]string{"序号(必填)", "收款方支付宝账号(必填)", "收款方姓名(必填)", "金额(必填,单位:元)", "备注(选填)"})
- // for _, v := range data {
- // writer.Write([]string{v["id"], v["alipay"], v["alipay_name"], v["real_amount"], "聚合联盟"})
- // }
- // writer.Flush() // 此时才会将缓冲区数据写入
- // c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, name+".csv"))
- // r := bytes.NewReader(bytesBuffer.Bytes())
- // fSrc, _ := ioutil.ReadAll(r)
- // str := "data:text/csv;charset=utf-8;base64," + Base64RawStdEncode(string(fSrc))
- // fmt.Println(str)
- // return str
- //}
|