Excelize

安装

go get github.com/360EntSecGroup-Skylar/excelize
  • 如果您使用 Go Modules 管理软件包,请使用下面的命令来安装最新版本。
go get github.com/360EntSecGroup-Skylar/excelize/v2

创建 Excel 文档

下面是一个创建 Excel 文档的简单例子:

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize"
)func main() {f := excelize.NewFile()// 创建一个工作表index := f.NewSheet("Sheet2")// 设置单元格的值f.SetCellValue("Sheet2", "A2", "Hello world.")f.SetCellValue("Sheet1", "B2", 100)// 设置工作簿的默认工作表f.SetActiveSheet(index)// 根据指定路径保存文件if err := f.SaveAs("Book1.xlsx"); err != nil {fmt.Println(err)}
}

读取 Excel 文档

下面是读取 Excel 文档的例子:

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize"
)func main() {f, err := excelize.OpenFile("Book1.xlsx")if err != nil {fmt.Println(err)return}// 获取工作表中指定单元格的值cell, err := f.GetCellValue("Sheet1", "B2")if err != nil {fmt.Println(err)return}fmt.Println(cell)// 获取 Sheet1 上所有单元格rows, err := f.GetRows("Sheet1")for _, row := range rows {for _, colCell := range row {fmt.Print(colCell, "\t")}fmt.Println()}
}

在 Excel 文档中创建图表

使用 Excelize 生成图表十分简单,仅需几行代码。您可以根据工作表中的已有数据构建图表,或向工作表中添加数据并创建图表。

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize"
)func main() {categories := map[string]string{"A2": "Small", "A3": "Normal", "A4": "Large", "B1": "Apple", "C1": "Orange", "D1": "Pear"}values := map[string]int{"B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8}f := excelize.NewFile()for k, v := range categories {f.SetCellValue("Sheet1", k, v)}for k, v := range values {f.SetCellValue("Sheet1", k, v)}if err := f.AddChart("Sheet1", "E1", `{"type":"col3DClustered","series":[{"name":"Sheet1!$A$2","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$2:$D$2"},{"name":"Sheet1!$A$3","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$3:$D$3"},{"name":"Sheet1!$A$4","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$4:$D$4"}],"title":{"name":"Fruit 3D Clustered Column Chart"}}`); err != nil {fmt.Println(err)return}// 根据指定路径保存文件if err := f.SaveAs("Book1.xlsx"); err != nil {fmt.Println(err)}
}

向 Excel 文档中插入图片

package mainimport ("fmt"_ "image/gif"_ "image/jpeg"_ "image/png""github.com/360EntSecGroup-Skylar/excelize"
)func main() {f, err := excelize.OpenFile("Book1.xlsx")if err != nil {fmt.Println(err)return}// 插入图片if err := f.AddPicture("Sheet1", "A2", "image.png", ""); err != nil {fmt.Println(err)}// 在工作表中插入图片,并设置图片的缩放比例if err := f.AddPicture("Sheet1", "D2", "image.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`); err != nil {fmt.Println(err)}// 在工作表中插入图片,并设置图片的打印属性if err := f.AddPicture("Sheet1", "H2", "image.gif", `{"x_offset": 15, "y_offset": 10, "print_obj": true, "lock_aspect_ratio": false, "locked": false}`); err != nil {fmt.Println(err)}// 保存文件if err = f.Save(); err != nil {fmt.Println(err)}
}

golang操作excel相关推荐

  1. Golang操作Excel的模块Excelize学习总结2-设置单元格数据

    Golang操作Excel的模块Excelize – 设置单元格的值 新建excel文件 excelize.NewFile() 获取当前活动的sheet页索引 func (f *File) GetAc ...

  2. golang操作excel两种excelize包对比

    Go 语言是一门适合用于编写高效且并发的 Web 应用程序的编程语言,同时也可以使用它进行数据处理和分析.在数据处理和分析过程中,Excel 是一种常用的电子表格软件,很多情况下需要将数据导入到 Ex ...

  3. Golang 操作Excel文件

    日常开发中会遇到处理Excel文件的相关操作,这里推荐一款应用比较广泛的操作Excel的开源工具Excelize. Excelize是一个用Go语言编写的库,提供了一组允许您写入和读取XLSX / X ...

  4. golang操作excel表格---写到excel数据【可以使用】

    package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize""strcon ...

  5. python excel操作单元格_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  6. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  7. C#如何在Form中嵌入并且操作Excel表格

    网上比较多讲述如何操作excel表的文章,但都是启动excel的窗口来打开excel数据文件.有时候需要把excel表嵌入到自己程序的form中,给客户一个不用切换窗口的操作界面,似乎更好.这在vc中 ...

  8. c#操作Excel整理总结

    大家好,这是我在工作中总结的关于C#操作Excel的帮助类,欢迎大家批评指正! using System; using System.Collections.Generic; using System ...

  9. C#操作excel(多种方法比较)

    我们在做excel资料的时候,通常有以下方法. 一.导入导出excel常用方法: 1.用查询表的方式查询并show在数据集控件上. 代码 public static string strCon = & ...

最新文章

  1. Android 自定义圆形图片 CircleImageView
  2. c++ 初始化 代码 应放在那里_Go语言goroutine调度器初始化 (12)
  3. 搞定全局ID生成器:SpringBoot2.x 集成百度 uidgenerator
  4. 你会在C#的类库中添加web service引用吗?
  5. [转]毕业5年决定你的命运 --------值得所有不甘平庸的人看看
  6. 【Envi风暴】Envi 5.4遥感影像镶嵌原来如此简单!
  7. linux中的acl权限,linux中的权限和ACL
  8. typescript 方法后面加感叹号_typescript专题(四) 「泛型」
  9. 【转载】Linux等类Unix系统学习用书那点事儿!
  10. 解决matplotlib中文显示问题
  11. 【原创】从罗胖子关于开会的议题说开去
  12. ajax调用方式汇总
  13. 算法笔记_面试_0.刷leetcode攻略
  14. ClearCase Overview
  15. 2016中国大数据市场研究报告
  16. 求两个数最小公倍数的7种方法
  17. 高德纳(Donald Knuth)语录
  18. 为Ribbon Client自定义配置
  19. 友达8寸高分辨率工业屏G080UAN02.2-8寸MIPI屏
  20. qq 浏览器 android x86版,qq浏览器安卓版x86

热门文章

  1. 学校计算机如何脱控,学校机房脱控方法(已控状态)/极域电子教室脱离老师控制图文教程...
  2. 华为S5720-52X-PWR-LI/S5720-52X-LI交互机堆叠和VLAN配置
  3. 正确使用Google英文版
  4. vba学习笔记 while wend 的使用
  5. 唐诗宋词 v1.5 软件下载 诗词库更新时间20090426 唐诗宋词三百首 GCLsoft
  6. A4时代的各家PND产品乱弹——奶猫侃GPS
  7. PopCap推出html5网页版宝石迷阵
  8. config类和config助手函数
  9. centos8添加中文语言包
  10. STM8L101活跃停机(AWU)编程教学