Go-Excelize API 源码阅读(四)——Save()、SaveAs(name string)
2024-02-14 20:20:26
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() 函数来压缩工作簿。