golang读写 xls

发布时间:2024-12-22 23:40:07

超级简单的golang操作xls

背景

在实际的开发过程中,有时我们需要对xls文件进行读写操作,如生成报表、导入数据等。而在golang中,我们可以使用第三方库excelize来方便地对xls进行读写。

安装excelize

首先,我们需要安装excelize库。打开终端执行以下命令:

$ go get github.com/360EntSecGroup-Skylar/excelize/v2

这会将所需的库下载到你的工作空间中。

读取已存在的xls文件

要读取一个已存在的xls文件,我们首先需要创建一个新的工作簿对象,然后打开待读取的文件。

import (
    "fmt"
    "github.com/360EntSecGroup-Skylar/excelize/v2"
)

func main() {
    f, err := excelize.OpenFile("path/to/file.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    
    // 读取第一个工作表的A1单元格的内容
    cellValue, err := f.GetCellValue("Sheet1", "A1")
    if err != nil {
        fmt.Println(err)
        return
    }
    
    fmt.Println(cellValue)
}

上述代码首先使用excelize.OpenFile()函数打开指定路径的xls文件。然后,通过GetCellValue()函数来获取指定工作表、指定单元格的数值。

写入新的xls文件

要创建一个新的xls文件并写入数据,可以使用以下代码:

import (
    "github.com/360EntSecGroup-Skylar/excelize/v2"
)

func main() {
    f := excelize.NewFile()
    
    // 创建一个新的工作表
    index := f.NewSheet("Sheet1")
    
    // 设置单元格的值
    f.SetCellValue("Sheet1", "A1", "Hello")
    f.SetCellValue("Sheet1", "B1", "World")
    
    // 设置默认工作表
    f.SetActiveSheet(index)
	
    // 保存文件
    if err := f.SaveAs("path/to/newfile.xlsx"); err != nil {
        fmt.Println(err)
    }
}

上述代码首先使用excelize.NewFile()创建一个新的xls文件,并且默认会自动创建一个名为"Sheet1"的工作表。然后,我们可以使用SetCellValue()函数来设置单元格的值。最后,调用SaveAs()函数将数据保存到指定路径的xls文件中。

总结

通过excelize库,我们可以轻松地实现golang对xls文件的读写。不仅如此,该库还提供了丰富的API,可以进行更复杂的操作,如合并单元格、设置样式等。在实际项目中,我们可以根据需要结合excelize库完成各种xls文件操作。

相关推荐