日常开发中会遇到处理Excel文件的相关操作,这里推荐一款应用比较广泛的操作Excel的开源工具Excelize。

Excelize是一个用Go语言编写的库,提供了一组允许您写入和读取XLSX / XLSM / XLTM文件的功能。支持读写由Microsoft Excel™2007和更高版本生成的电子表格文档。通过高度兼容性支持复杂的组件,并提供了流式API,用于从工作表中生成或读取包含大量数据的数据。该库需要Go版本1.10或更高版本。可以使用go的内置文档工具查看完整的API文档,也可以在go.dev和docs reference上在线查看。

创建Excel文件

示例

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize"
)func main() {f := excelize.NewFile()// Create a new sheet.index := f.NewSheet("Sheet2")// Set value of a cell.f.SetCellValue("Sheet2", "A2", "Hello world.")//设置单元格样式style, err := f.NewStyle(`{"font":{"bold": true,"family": "font-family","size": 20,"color": "#777777"}
}`)if err != nil {fmt.Println(err)}f.SetCellStyle("Sheet1", "B1", "B1", style)f.SetCellValue("Sheet1", "B1", "hello")// Set active sheet of the workbook.f.SetActiveSheet(index)// Save xlsx file by the given path.if err := f.SaveAs("Book1.xlsx"); err != nil {fmt.Println(err)}
}

插入图片到单元格

示例:

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}// Insert a picture.if err := f.AddPicture("Sheet1", "A2", "image.png", ""); err != nil {fmt.Println(err)}// Insert a picture to worksheet with scaling.if err := f.AddPicture("Sheet1", "D2", "image.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`); err != nil {fmt.Println(err)}// Insert a picture offset in the cell with printing support.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)}// Save the xlsx file with the origin path.if err = f.Save(); err != nil {fmt.Println(err)}
}

读取Excel文件

示例

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize"
)func main() {f, err := excelize.OpenFile("Book1.xlsx")if err != nil {fmt.Println(err)return}// Get value from cell by given worksheet name and axis.cell, err := f.GetCellValue("Sheet1", "B2")if err != nil {fmt.Println(err)return}fmt.Println(cell)// Get all the rows in the Sheet1.rows, err := f.GetRows("Sheet1")for _, row := range rows {for _, colCell := range row {fmt.Print(colCell, "\t")}fmt.Println()}
}

生成Excel文件并下载

示例

package mainimport ("github.com/360EntSecGroup-Skylar/excelize""log""net/http"
)func down(w http.ResponseWriter, r *http.Request) {f := excelize.NewFile()// Set value of a cell.f.SetCellValue("Sheet1", "A2", "Hello world.")// Save xlsx file by the given path.//if err := f.SaveAs("Book1.xlsx"); err != nil {//   fmt.Println(err)//}w.Header().Set("Content-Type", "application/octet-stream")w.Header().Set("Content-Disposition", "attachment; filename="+"100以内口算题.xlsx")w.Header().Set("Content-Transfer-Encoding", "binary")_ = f.Write(w)
}func main() {http.HandleFunc("/", down) //   设置访问路由log.Fatal(http.ListenAndServe(":8080", nil))
}

相关资料

https://github.com/360EntSecGroup-Skylar/excelize

https://xuri.me/excelize/zh-hans/

links

  • 目录

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. C#在客户端和服务端操作Excel文件

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

  4. python处理excel表格实例-使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...

  5. C#操作Excel文件(转)

    摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...

  6. php删除excel文件,php操作excel文件的方法小结

    php操作excel文件的方法小结 php操作excel文件的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 一.php,不用COM,生成excel文件 ...

  7. C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并

    C#操作Excel文件(读取Excel,写入Excel) 看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家 ...

  8. 详解Python操作Excel文件

    前言 本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法. 常见库简介 1.xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. 地 ...

  9. 很大的.xls 文件导入sqlserver2005导入不全_python3 接口测试数据驱动之操作 excel 文件...

    python3 接口测试数据驱动之操作 excel 文件 1.4 操作 excel 文件 Python 中一般使用 xlrd 库来读取 Excel 文件, xlrd 库是 Python 的第三方库. ...

最新文章

  1. hadoop2 自定义OutputFormat场景杂记
  2. matlab svm工具箱_机器学习笔记--SVM(MATLAB 实现代码)
  3. 生命的礼赞,请记住我的名字,我叫科比-布莱恩特
  4. Linux的Configure详情
  5. 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
  6. 【CF1194E】Count The Rectangles【类扫描线】【单调性】【树状数组】
  7. olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作
  8. @excel 注解_Java中注解学习系列教程-3
  9. spss练习数据_动手练习SPSS因子分析啦,会不会做一动手就知道了
  10. docker容器别人访问很卡_一篇文章带你走进Docker的世界
  11. 将.pem转换为.crt和.key
  12. python课程结课感悟_python听课的感悟与建议
  13. 《数字图像处理》题库3:判断题
  14. 全国移动短信信息中心号码查询大全
  15. dell服务器重装iso系统,戴尔R620安装windows2012R2过程和方法
  16. linux网页打开慢的解决方法,腾讯所有网页打开很慢的解决方案
  17. 将Iphone 8P手机中的照片导入电脑时出错
  18. java实现图片分辨率压缩、图片软化、jpg质量压缩
  19. (1)Mysql架构和常用引擎介绍
  20. 低格过程到底对硬盘进行了什么操作?

热门文章

  1. iOS 几种常用的 crash log 崩溃信息调试方法. (转载)
  2. 新人职场要淡定 情商比智商更重要
  3. python soup中文歌词_Python调用BeautifuSoup进行html的文本内容提取问题 [ 求问吃鸡主播beautifu1 boy...
  4. [转]Web开发者和设计师必须要知道的 iOS 8 十个变化
  5. 计算机应用基础说课方案,广东省“XX杯”说课大赛计算机应用基础类一等奖作品:PPT写字动画的制作教学设计方案.doc...
  6. ARP欺骗数据帧转发之MAC修改
  7. 中国数据库的诸神之战
  8. Allow Arbitrary Loads in Web Content与Allow Arbitrary Loads配置
  9. ARM-ADC模数转换
  10. Twitter API