Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式。
项目主页 https://github.com/xuri/excelize
安装
go get github.com/xuri/excelize/v2
创建 Excel 文档
package main import ( "fmt" "github.com/xuri/excelize/v2" ) func main() { xlsx := excelize.NewFile() // Create a new sheet. index := xlsx.NewSheet("Sheet2") // Set value of a cell. xlsx.SetCellValue("Sheet2", "A2", "Hello world.") xlsx.SetCellValue("Sheet1", "B2", 100) // Set active sheet of the workbook. xlsx.SetActiveSheet(index) // Save xlsx file by the given path. err := xlsx.SaveAs("./Workbook.xlsx") if err != nil { fmt.Println(err) } }
读取已有文档
package main import ( "fmt" "github.com/xuri/excelize/v2" ) func main() { xlsx, err := excelize.OpenFile("./Workbook.xlsx") if err != nil { fmt.Println(err) return } // Get value from cell by given worksheet name and axis. cell := xlsx.GetCellValue("Sheet1", "B2") fmt.Println(cell) // Get all the rows in the Sheet1. rows := xlsx.GetRows("Sheet1") for _, row := range rows { for _, colCell := range row { fmt.Print(colCell, "\t") } fmt.Println() } }
向 Excel 文档中插入图表
package main import ( "fmt" "github.com/xuri/excelize/v2" ) 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} xlsx := excelize.NewFile() for k, v := range categories { xlsx.SetCellValue("Sheet1", k, v) } for k, v := range values { xlsx.SetCellValue("Sheet1", k, v) } xlsx.AddChart("Sheet1", "E1", `{"type":"bar3D","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 Line Chart"}}`) // Save xlsx file by the given path. err := xlsx.SaveAs("./Workbook.xlsx") if err != nil { fmt.Println(err) } }向 Excel 文档中插入图片
package main import ( "fmt" _ "image/gif" _ "image/jpeg" _ "image/png" "github.com/xuri/excelize/v2" ) func main() { xlsx, err := excelize.OpenFile("./Workbook.xlsx") if err != nil { fmt.Println(err) return } // Insert a picture. err = xlsx.AddPicture("Sheet1", "A2", "./image1.png", "") if err != nil { fmt.Println(err) } // Insert a picture to worksheet with scaling. err = xlsx.AddPicture("Sheet1", "D2", "./image2.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`) if err != nil { fmt.Println(err) } // Insert a picture offset in the cell with printing support. err = xlsx.AddPicture("Sheet1", "H2", "./image3.gif", `{"x_offset": 15, "y_offset": 10, "print_obj": true, "lock_aspect_ratio": false, "locked": false}`) if err != nil { fmt.Println(err) } // Save the xlsx file with the origin path. err = xlsx.Save() if err != nil { fmt.Println(err) } }还有其他一些功能,在这里就不一一列举了,详细使用文档以及获取后期的维护更新可以从项目的主页获取 https://github.com/xuri/excelize
相关推荐
这是一个 Go 语言用来读写新的 Excel 文件格式 —— XSLX 的开发包。读示例:package main import ( "fmt" "github.com/tealeg/xlsx" ) func main() { excelFileName := "/home/tealeg/foo.xlsx" xl...
总结起来,"golang实现的读取excel模板批量生成excel工具"是利用Go语言和Excellize库实现的一个高效工具,它简化了从模板批量生成Excel文件的过程,且提供了预编译的exe文件,便于用户直接使用。这个项目展示了Go...
这个库提供了读写Excel文件的能力,支持XLS和XLSX格式,可以方便地获取单元格数据、工作表信息等。 - 开发者可能需要理解Excel的结构,如工作表(worksheet)、行(row)、列(column)的概念,以及如何通过行列...
这个库提供了强大的功能,使得在Go语言中处理Excel文件变得非常方便,尤其对于那些需要在服务器端进行大量数据操作和分析的应用来说,它是一个极好的工具。 使用Go-xlsx库,你可以创建新的Excel工作簿,添加工作表...
### Golang读写Excel的方法教程 #### 一、引言 在现代软件开发中,处理电子表格文件(如Microsoft Excel)是一项常见的需求。对于使用Go语言进行开发的工程师来说,Excelize是一个强大的库,用于读取和写入Office ...
Excel文件是一种二进制文件格式,我们可以先创建一个CSV文件,然后利用Excel的兼容性,用Go语言写入CSV文件,再利用Excel程序打开此CSV文件,以达到导出数据的目的。 在示例代码中,首先导入了需要的包:os包用于...
它的标准库并不直接支持Excel文件操作,但社区开发了许多第三方库,如`github.com/360EntSecGroup-Skylar/excelize`和`github.com/boltdb/bolt`,这些库为开发者提供了便利的API来读写Excel文件。 这个“简单轻便的...
在Go语言中,读取Excel数据到内存是一项常见的任务,特别是在数据分析、报表处理或数据导入导出场景下。本文将详细介绍如何使用Go语言实现这一功能,包括必要的库介绍、代码示例以及一些实用技巧。 首先,Go语言并...
Excelize 是一个基于 Golang 语言的开源库,专门用于读取和写入 Microsoft Office Open XML 格式的 Excel 文件(XLSX 格式)。这个库为 Go 语言开发者提供了一种高效且方便的方式来处理 Excel 数据,极大地拓展了 Go...
1. C#:使用EPPlus库读写Excel。 2. PHP:使用PHPExcel或phpspreadsheet库。 3. R:使用readxl和write_xlsx包。 4. Go:使用go-excel库。 五、性能和兼容性 不同的库在性能和兼容性上有所不同。例如,openpyxl...
在Go语言中,我们可以使用诸如`xlsx`库来读写这些文件。 2. **Go语言的文件操作**: Go语言内置了强大的文件I/O操作,例如`os`和`io`包,可以用来创建、打开、写入和读取文件。在导出Excel时,我们需要用到这些操作...
在Go中,没有内置的库来直接处理Excel文件,但有一些第三方库,如`xlsx`或`golang.org/x/spreadsheet`,可以方便地读写Excel文件。通常,这些库允许你创建工作表、添加行和列、设置单元格格式等。 1. 使用`xlsx`库...
Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的编程语言。Go语言的设计目标是提高开发效率,简化并发编程,并提供高效的网络和系统级编程能力。 在Go语言的学习中,首先要...
支持读写电子表格文档Excelize简介Excelize是用Go语言编写的库,提供了一组允许您写入和读取XLSX / XLSM / XLTM文件的功能。 支持读写由Microsoft Excel:trade_mark:2007和更高版本生成的电子表格文档。 通过高度...
5. **文件操作**:Go语言标准库中的`os`和`ioutil`包提供了文件的读写操作,程序可能用到这些来保存和读取数据集。 6. **错误处理**:Go语言强调错误处理,程序中应包含适当的错误检查和处理机制,确保在遇到问题时...
**Golang**(Go语言):由Google开发的Go语言是一种静态类型的、编译型的、并发的、垃圾回收的、C-like的编程语言。Go语言教程会讲解其语法特性,如goroutines和channels(用于并发编程)、接口、包管理和标准库的...
Python拥有多个强大的库,如`pandas`、`openpyxl`、`xlrd`和`xlwt`,用于读写Excel文件。其中,`pandas`是最常用的选择,它提供了一个DataFrame对象,非常适合数据处理和分析。 - `pandas`库:使用`pandas.read_...
在IT领域,C++是一种强大的编程语言,广泛用于系统软件、应用软件、游戏开发以及高性能计算等场景。而Excel作为Microsoft Office套件中的一个组件,是处理数据和创建电子表格的首选工具。当我们需要在C++程序中与...
1. **源码文件**:这些可能是用Go语言编写的源代码,实现了Excel文件的读写操作,并将其编译为WebAssembly模块。Go的`encoding/csv`或`xlsx`库可能会被用于处理Excel文件。 2. **构建脚本**:为了将Go代码转换为...
Excelize 是一个用 Go 语言编写的开源库,专门用于操作 Office Excel 文档。这个库是基于 ECMA-376 和 ISO/IEC 29500 国际标准,确保了对 Microsoft Excel 2007 及以上版本创建的电子表格文档的高度兼容性。它支持 ...