`
luxurioust
  • 浏览: 6375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Go 语言读写 Excel

阅读更多

Go 语言读写 Excel 文档类库

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 文档中插入图表

Golang 读写 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

 

1
1
分享到:
评论

相关推荐

    Go语言的Excel读写库GoXSLX.zip

    这是一个 Go 语言用来读写新的 Excel 文件格式 —— XSLX 的开发包。读示例:package main import (  "fmt"  "github.com/tealeg/xlsx" ) func main() {  excelFileName := "/home/tealeg/foo.xlsx"  xl...

    golang实现的读取excel模板批量生成excel工具.zip

    总结起来,"golang实现的读取excel模板批量生成excel工具"是利用Go语言和Excellize库实现的一个高效工具,它简化了从模板批量生成Excel文件的过程,且提供了预编译的exe文件,便于用户直接使用。这个项目展示了Go...

    golang读取excel模板批量生成word工具.zip

    这个库提供了读写Excel文件的能力,支持XLS和XLSX格式,可以方便地获取单元格数据、工作表信息等。 - 开发者可能需要理解Excel的结构,如工作表(worksheet)、行(row)、列(column)的概念,以及如何通过行列...

    Go-xlsx-GoogleGo(golang)库用于读写ExcelXLSX文件

    这个库提供了强大的功能,使得在Go语言中处理Excel文件变得非常方便,尤其对于那些需要在服务器端进行大量数据操作和分析的应用来说,它是一个极好的工具。 使用Go-xlsx库,你可以创建新的Excel工作簿,添加工作表...

    Golang读写Excel的方法教程

    ### Golang读写Excel的方法教程 #### 一、引言 在现代软件开发中,处理电子表格文件(如Microsoft Excel)是一项常见的需求。对于使用Go语言进行开发的工程师来说,Excelize是一个强大的库,用于读取和写入Office ...

    Go语言导出内容到Excel的方法

    Excel文件是一种二进制文件格式,我们可以先创建一个CSV文件,然后利用Excel的兼容性,用Go语言写入CSV文件,再利用Excel程序打开此CSV文件,以达到导出数据的目的。 在示例代码中,首先导入了需要的包:os包用于...

    Go-一个简单轻便的excel文件阅读器可以更快地读取标准excel表格

    它的标准库并不直接支持Excel文件操作,但社区开发了许多第三方库,如`github.com/360EntSecGroup-Skylar/excelize`和`github.com/boltdb/bolt`,这些库为开发者提供了便利的API来读写Excel文件。 这个“简单轻便的...

    Go语言把excle数据读取到内存中

    在Go语言中,读取Excel数据到内存是一项常见的任务,特别是在数据分析、报表处理或数据导入导出场景下。本文将详细介绍如何使用Go语言实现这一功能,包括必要的库介绍、代码示例以及一些实用技巧。 首先,Go语言并...

    Go-Excelize-用于读写XLSX文件的Golang库

    Excelize 是一个基于 Golang 语言的开源库,专门用于读取和写入 Microsoft Office Open XML 格式的 Excel 文件(XLSX 格式)。这个库为 Go 语言开发者提供了一种高效且方便的方式来处理 Excel 数据,极大地拓展了 Go...

    excl读写excl读写

    1. C#:使用EPPlus库读写Excel。 2. PHP:使用PHPExcel或phpspreadsheet库。 3. R:使用readxl和write_xlsx包。 4. Go:使用go-excel库。 五、性能和兼容性 不同的库在性能和兼容性上有所不同。例如,openpyxl...

    表格导出Excel,表格导出excel出不来,GO源码.zip

    在Go语言中,我们可以使用诸如`xlsx`库来读写这些文件。 2. **Go语言的文件操作**: Go语言内置了强大的文件I/O操作,例如`os`和`io`包,可以用来创建、打开、写入和读取文件。在导出Excel时,我们需要用到这些操作...

    表格导出Excel,表格导出excel出不来,GO源码.rar

    在Go中,没有内置的库来直接处理Excel文件,但有一些第三方库,如`xlsx`或`golang.org/x/spreadsheet`,可以方便地读写Excel文件。通常,这些库允许你创建工作表、添加行和列、设置单元格格式等。 1. 使用`xlsx`库...

    Go语言学习笔记(自己整理的,超级全面)

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的编程语言。Go语言的设计目标是提高开发效率,简化并发编程,并提供高效的网络和系统级编程能力。 在Go语言的学习中,首先要...

    Golang库,用于读写Microsoft Excel:trade_mark:(XLSX)文件。-Golang开发

    支持读写电子表格文档Excelize简介Excelize是用Go语言编写的库,提供了一组允许您写入和读取XLSX / XLSM / XLTM文件的功能。 支持读写由Microsoft Excel:trade_mark:2007和更高版本生成的电子表格文档。 通过高度...

    定时采集进程占用CPU 内存数据并写入excel.zip

    5. **文件操作**:Go语言标准库中的`os`和`ioutil`包提供了文件的读写操作,程序可能用到这些来保存和读取数据集。 6. **错误处理**:Go语言强调错误处理,程序中应包含适当的错误检查和处理机制,确保在遇到问题时...

    TutorialsPoint Excel Hadoop HighCharts Golang Hive HBase Foundation Git 教程

    **Golang**(Go语言):由Google开发的Go语言是一种静态类型的、编译型的、并发的、垃圾回收的、C-like的编程语言。Go语言教程会讲解其语法特性,如goroutines和channels(用于并发编程)、接口、包管理和标准库的...

    读取excel

    Python拥有多个强大的库,如`pandas`、`openpyxl`、`xlrd`和`xlwt`,用于读写Excel文件。其中,`pandas`是最常用的选择,它提供了一个DataFrame对象,非常适合数据处理和分析。 - `pandas`库:使用`pandas.read_...

    C++操作excel案例

    在IT领域,C++是一种强大的编程语言,广泛用于系统软件、应用软件、游戏开发以及高性能计算等场景。而Excel作为Microsoft Office套件中的一个组件,是处理数据和创建电子表格的首选工具。当我们需要在C++程序中与...

    webassembly.zip

    1. **源码文件**:这些可能是用Go语言编写的源代码,实现了Excel文件的读写操作,并将其编译为WebAssembly模块。Go的`encoding/csv`或`xlsx`库可能会被用于处理Excel文件。 2. **构建脚本**:为了将Go代码转换为...

    Go开源说 Excelize-xuri-202012171

    Excelize 是一个用 Go 语言编写的开源库,专门用于操作 Office Excel 文档。这个库是基于 ECMA-376 和 ISO/IEC 29500 国际标准,确保了对 Microsoft Excel 2007 及以上版本创建的电子表格文档的高度兼容性。它支持 ...

Global site tag (gtag.js) - Google Analytics