三方包"github.com/tealeg/xlsx"将数据导入excel
定义表头字段和导入结构体

type Student struct {Name   stringAge    intPhone  stringGender stringMail   string
}// HeaderColumn 表头字段定义
type HeaderColumn struct {Field string // 字段,数据映射到的数据字段名Title string // 标题,表格中的列名称
}

设置表头样式

// SetHeader 写模式下,设置字段表头和字段顺序
// 参数 header 为表头和字段映射关系,如:HeaderColumn{Field:"title", Title: "标题", Requre: true}
// 参数 width  为表头每列的宽度,单位 CM:map[string]float64{"title": 0.8}
func SetHeader(sheet *xlsx.Sheet, header []*HeaderColumn, width map[string]float64) (*xlsx.Sheet, error) {if len(header) == 0 {return nil, errors.New("Excel.SetHeader 错误: 表头不能为空")}// 表头样式style := xlsx.NewStyle()font := xlsx.DefaultFont()font.Bold = truealignment := xlsx.DefaultAlignment()alignment.Vertical = "center"style.Font = *fontstyle.Alignment = *alignmentstyle.ApplyFont = truestyle.ApplyAlignment = true// 设置表头字段row := sheet.AddRow()row.SetHeightCM(1.0)row_w := make([]string, 0)for _, column := range header {row_w = append(row_w, column.Field)cell := row.AddCell()cell.Value = column.Title cell.SetStyle(style) //设置单元样式}// 表格列,宽度if len(row_w) > 0 {for k, v := range row_w {if width[v] > 0.0 {sheet.SetColWidth(k, k, width[v]*10)}}}return sheet, nil
}

准备数据

func getStudents() []Student {students := make([]Student, 0)for i := 0; i < 10; i++ {stu := Student{}stu.Name = "love" + strconv.Itoa(i+1)stu.Mail = stu.Name + "@studygolang.com"stu.Phone = "10086" + strconv.Itoa(i)stu.Age = 18 + iif i%2 == 0 {stu.Gender = "女"} else {stu.Gender = "男"}students = append(students, stu)}return students
}

开始导入

func Export() {file := xlsx.NewFile()                      // NewWriter 创建一个Excel写操作实例sheet, err := file.AddSheet("student_list") //表实例if err != nil {fmt.Printf(err.Error())}stus := getStudents() //add dataheaders := []*HeaderColumn{{Field: "Name", Title: "姓名"},{Field: "Age", Title: "年龄"},{Field: "Phone", Title: "电话"},{Field: "Gender", Title: "性别"},{Field: "Mail", Title: "邮箱"},}style := map[string]float64{"Name":   2.0,"Age":    2.0,"Phone":  2.0,"Gender": 2.0,"Mail":   2.0,}sheet, _ = SetHeader(sheet, headers, style)for _, stu := range stus {data := make(map[string]string)data["Name"] = stu.Namedata["Age"] = strconv.Itoa(stu.Age)data["Phone"] = stu.Phonedata["Gender"] = stu.Genderdata["Mail"] = stu.Mailrow := sheet.AddRow()row.SetHeightCM(0.8)for _, field := range headers {row.AddCell().Value = data[field.Field]}}outFile := "/home/chengxiaofei/project/src/test/out_student.xlsx"err = file.Save(outFile)if err != nil {fmt.Printf(err.Error())}fmt.Println("\n\nexport success")
}

导入成功

golang 将数据导入excel相关推荐

  1. python导入excel数据-如何把python中的数据导入excel

    python将数据导入excel的方法:1.在python官网下载xlrd第三方库:2.利用xlrd中的open_workbook函数读入excel文件,即可在python中导入excel数据. 一. ...

  2. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!...

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  3. openrowset excel 科学计数_txt的数据导入excel中身份证或银行卡显示成科学计数如何解决...

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  4. python excel模板 生成excel表格_python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图...

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 #coding=utf-8 from openpyxl importload_workbookfro ...

  5. PB 数据窗口数据导入Excel, 如果存在则追加,不存在则创建。

    PB 数据窗口数据导入Excel, 如果存在则追加,不存在则创建. [转] OLEOBJECT ExcelServer,Excelbooks long ll_count ,ll_loop,ll_i,l ...

  6. matlab数组 xp,windowsxp系统将matlab数据导入excel的方法

    matlab是一款非常强大的商业数学软件,不仅能够读取Excel表格中的数据,还支持将matlab中的变量导入到Excel表格中.接下来,系统城小编就为大家分享windowsxp系统将matlab数据 ...

  7. java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》

    如何用java 将txt数据导入excel 代码如下: import java.io.*; import jxl.*; import jxl.write.*; public class CreateX ...

  8. txt的数据导入excel中身份证或银行卡显示成科学计数如何解决

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  9. 网页数据导入excel的问题

    网页数据导入excel共分三步: 第一步:建立EXCEL.JS文件 ====文件的代码========= var  idTmr  =  ""; function copy(tabi ...

  10. 网页数据导入excel问题介绍

    转自:微点阅读  https://www.weidianyuedu.com 网页数据导入excel共分三步: 第一步:建立EXCEL.JS文件 ====文件的代码========= var  idTm ...

最新文章

  1. 关于ListView中adapter调用notifyDataSetChanged无效的原因
  2. 框架:SpringMVC中Interceptor拦截器的两种实现
  3. Linux安装nginx进行make的报错 原因pcre及其源代码路径
  4. 软件人员kpi制定模板_软件科技公司绩效考核办法模板
  5. 让员工、用户粉丝化,从选好社区软件开始
  6. 【转】Linux删除文件未释放空间问题处理
  7. 冒险岛PHP源码,岁月最新源码 岁月冒险岛端源码。。部分源码需要的拿走了、不谢!!! 联合开发网 - pudn.com...
  8. 浅谈RS-485协议
  9. 服务器30hz显示器240hz,显示器刷新率上不去,这锅到底让谁背
  10. Javassist学习总结1
  11. Ubuntu安装桌面环境以及远程桌面连接
  12. [BZOJ4152][AMPPZ2014]The Captain题解
  13. android 画圆形 bitmap,在android中画圆形图片的几种办法
  14. Linux下sqlite3移植与编程
  15. codeup刷题 2.6小节——C/C++快速入门->函数 ——《算法笔记》(胡凡)
  16. 【操作系统】操作系统的功能管理与分类
  17. php管理varnish,php实现监控varnish缓存服务器的状态,php监控varnish缓存_PHP教程
  18. LayaAir之制作迷宫
  19. 音频接口简介(PDM/PCM/IIS/SLIMBUS)
  20. ESXi服务器CPU睿频检测

热门文章

  1. STM32---FLASH闪存
  2. ipad上的html编辑器,iPad Pro变生产力工具,你还缺这个轻量级浏览器端代码编辑器...
  3. 数据结构名词解释以及简答
  4. 2023年陕西师范大学宗教学考研上岸前辈备考经验指导
  5. java 转换成大写_java实现将数字转换成人民币大写
  6. 安徽财贸职业学院计算机信息管理怎么样,让别人看看安徽财贸职业学院计算机系汪永涛辅导员如何对待我的!!...
  7. 打印没反应/打印耗时长/not accessible
  8. 单细胞文章解读——用单细胞RNA测序技术分析与肿瘤转移相关的细胞间通讯
  9. 802.11-2020协议学习__$12-Security__$12.5.2-TKIP__2
  10. Unity【Live Capture】- 关于人脸捕捉的解决方案(一)