Golang 操作Excel文件
日常开发中会遇到处理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文件相关推荐
- Golang操作Excel的模块Excelize学习总结2-设置单元格数据
Golang操作Excel的模块Excelize – 设置单元格的值 新建excel文件 excelize.NewFile() 获取当前活动的sheet页索引 func (f *File) GetAc ...
- golang操作excel两种excelize包对比
Go 语言是一门适合用于编写高效且并发的 Web 应用程序的编程语言,同时也可以使用它进行数据处理和分析.在数据处理和分析过程中,Excel 是一种常用的电子表格软件,很多情况下需要将数据导入到 Ex ...
- C#在客户端和服务端操作Excel文件
一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象 System.Text.St ...
- python处理excel表格实例-使用Python操作excel文件的实例代码
使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...
- C#操作Excel文件(转)
摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...
- php删除excel文件,php操作excel文件的方法小结
php操作excel文件的方法小结 php操作excel文件的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 一.php,不用COM,生成excel文件 ...
- C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并
C#操作Excel文件(读取Excel,写入Excel) 看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家 ...
- 详解Python操作Excel文件
前言 本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法. 常见库简介 1.xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. 地 ...
- 很大的.xls 文件导入sqlserver2005导入不全_python3 接口测试数据驱动之操作 excel 文件...
python3 接口测试数据驱动之操作 excel 文件 1.4 操作 excel 文件 Python 中一般使用 xlrd 库来读取 Excel 文件, xlrd 库是 Python 的第三方库. ...
最新文章
- hadoop2 自定义OutputFormat场景杂记
- matlab svm工具箱_机器学习笔记--SVM(MATLAB 实现代码)
- 生命的礼赞,请记住我的名字,我叫科比-布莱恩特
- Linux的Configure详情
- 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
- 【CF1194E】Count The Rectangles【类扫描线】【单调性】【树状数组】
- olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作
- @excel 注解_Java中注解学习系列教程-3
- spss练习数据_动手练习SPSS因子分析啦,会不会做一动手就知道了
- docker容器别人访问很卡_一篇文章带你走进Docker的世界
- 将.pem转换为.crt和.key
- python课程结课感悟_python听课的感悟与建议
- 《数字图像处理》题库3:判断题
- 全国移动短信信息中心号码查询大全
- dell服务器重装iso系统,戴尔R620安装windows2012R2过程和方法
- linux网页打开慢的解决方法,腾讯所有网页打开很慢的解决方案
- 将Iphone 8P手机中的照片导入电脑时出错
- java实现图片分辨率压缩、图片软化、jpg质量压缩
- (1)Mysql架构和常用引擎介绍
- 低格过程到底对硬盘进行了什么操作?
热门文章
- iOS 几种常用的 crash log 崩溃信息调试方法. (转载)
- 新人职场要淡定 情商比智商更重要
- python soup中文歌词_Python调用BeautifuSoup进行html的文本内容提取问题 [ 求问吃鸡主播beautifu1 boy...
- [转]Web开发者和设计师必须要知道的 iOS 8 十个变化
- 计算机应用基础说课方案,广东省“XX杯”说课大赛计算机应用基础类一等奖作品:PPT写字动画的制作教学设计方案.doc...
- ARP欺骗数据帧转发之MAC修改
- 中国数据库的诸神之战
- Allow Arbitrary Loads in Web Content与Allow Arbitrary Loads配置
- ARM-ADC模数转换
- Twitter API