返回

Go-Excelize API 源码阅读(四)——Save()、SaveAs(name string)

后端

Go-Excelize:使用 Save() 和 SaveAs() 函数保存 Excel 工作簿

概述

Go-Excelize 是一个 Go 语言库,它提供了操作 Microsoft Excel 文档的强大功能。它允许开发者轻松地读取、写入和修改 Excel 文件。在本篇文章中,我们将深入探讨 Go-Excelize 库,重点关注 Save() 和 SaveAs() 函数,它们用于将 Excel 工作簿保存到二进制或 XML 格式的文件中。

Save() 函数

Save() 函数负责将当前工作簿保存到二进制格式的文件中。二进制格式是 Excel 文件的默认格式,它包含所有工作簿的数据和格式信息。Save() 函数的语法如下:

func (f *File) Save() error

需要注意的是,Save() 函数仅能将工作簿保存到二进制格式的文件中。如果您需要保存到 XML 格式,请使用 SaveAs() 函数。

SaveAs() 函数

SaveAs() 函数允许您将当前工作簿保存到指定格式的文件中。SaveAs() 函数的语法如下:

func (f *File) SaveAs(name string) error

name 参数指定了要保存的文件的名称。如果没有指定文件扩展名,SaveAs() 函数会自动添加 ".xlsx" 扩展名。

SaveAs() 函数支持将工作簿保存为以下格式:

  • 二进制格式(.xlsx)
  • XML 格式(.xml)
  • CSV 格式(.csv)
  • JSON 格式(.json)
  • HTML 格式(.html)

示例

使用 Save() 函数保存到二进制格式文件

package main

import (
	"fmt"

	"github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
	f := excelize.NewFile()
	f.SetCellValue("Sheet1", "A1", "Hello, world!")
	err := f.Save("hello.xlsx")
	if err != nil {
		fmt.Println(err)
	}
}

使用 SaveAs() 函数保存到 XML 格式文件

package main

import (
	"fmt"

	"github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
	f := excelize.NewFile()
	f.SetCellValue("Sheet1", "A1", "Hello, world!")
	err := f.SaveAs("hello.xml")
	if err != nil {
		fmt.Println(err)
	}
}

总结

通过使用 Go-Excelize 库中的 Save() 和 SaveAs() 函数,开发者可以轻松地将 Excel 工作簿保存到二进制或 XML 格式的文件中。Save() 函数用于保存到二进制格式,而 SaveAs() 函数则提供了更广泛的文件格式选择。

常见问题解答

1. 是否可以在不指定文件扩展名的情况下使用 SaveAs() 函数?

是的,SaveAs() 函数会自动添加 ".xlsx" 扩展名,如果您没有指定扩展名。

2. 保存到 XML 格式时是否会丢失数据或格式信息?

不会,XML 格式可以保存所有工作簿的数据和格式信息。

3. 是否可以将工作簿保存为其他格式,例如 PDF 或 DOCX?

Go-Excelize 库不支持将工作簿保存为 PDF 或 DOCX 格式。

4. 如何在保存工作簿之前对其进行加密?

Go-Excelize 库提供 Encrypt() 函数来加密工作簿。

5. 如何在保存工作簿之前对其进行压缩?

Go-Excelize 库提供 Optimize() 函数来压缩工作簿。