golang下载excel

Posted ashion89

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang下载excel相关的知识,希望对你有一定的参考价值。

package test
import (
   "github.com/360EntSecGroup-Skylar/excelize"
)


/**
 * 导出Excel表格
 * @param  name     {string}    导出的表名
 * @param  header   {[]string}  表头key,导出后显示的顺序
 * @param  headerKV {map[string]string}  表头、数据kv对照
 * @param  data     {[]map[string]interface{}} 数据集合
 * @return err      {error}                    异常
 */
func ExportExcelSkylar(name string, header []string, headerKV map[string]string, data []map[string]interface{}) (fileName string, err error) {
    f := excelize.NewFile()
    // Create a new sheet
    index := f.NewSheet("Sheet1")
    headerValue := make([]string, 0)
    for _, v := range header {
        headerValue = append(headerValue, headerKV[v])
    }
    f.SetSheetRow("Sheet1", "A1", &headerValue)  
    var rowValue []interface{}  //行数据对象
    for i, v := range data {
        rowValue = make([]interface{}, 0)
        rowNum := strconv.Itoa(i + 2)   //表中的行顺序是从1开始的;  A1是表头,A2才是数据的开始行
        for _, key := range header {
            rowValue = append(rowValue, v[key])
        }
        f.SetSheetRow("Sheet1", "A"+rowNum, &rowValue)
    }

    f.SetActiveSheet(index)
    // Save xlsx file by the given path.
    fileName = name + ".xlsx"   //文件名称
    fileNamePath := "/" + fileName  //保存文件的位置
    err = f.SaveAs(fileNamePath)
    return
}
//返回文件名称
func DownExcel() string{
        header := []string{"name", "age"}
        headerKV := map[string]string{
            "name": "姓名",
            "age":  "年龄",
        }
        name := "学生列表"
        list := make([]map[string]interface{}, 0)
        for i:=0;i<10;i++{
           item := map[string]interface{}{
                  "name": "name-"+i,
                  "age":  10+i,
                 }
           list = append(list, item)
      }  //假设10条数据
fileName, err :
= ExportExcelSkylar(name, header, headerKV, list) if err != nil { return ""
}
return
fileName
}

 




以上是关于golang下载excel的主要内容,如果未能解决你的问题,请参考以下文章

golang代码片段(摘抄)

代码片段 - Golang 实现简单的 Web 服务器

代码片段 - Golang 实现集合操作

16个必备的JavaScript代码片段

Golang对excel进行处理

json [Golang] golang #golang #snippets中有用的片段