介绍
除了创建和样式化工作簿之外,大多数日常的电子表格代码主要花时间在读取和写入单元格值、附加公式以及在 XLSX 与 CSV 之间移动数据。Aspose.Cells FOSS 的 Go 版通过 Workbook 和 Cells 类型覆盖了这三项功能。
该库可作为 Go 模块在 github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go 获取,并在 MIT 许可证下发布。使用 go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 将其安装到任何 Go 1.24+ 项目中。
本文将逐步讲解单元格读取/写入、公式、CSV 转换以及单元格删除。
关键特性
创建工作簿并写入单元格
NewWorkbook() 返回一个已包含一个工作表的工作簿。使用 Cells().Set(ref, value) 写入值:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Category")
ws.Cells().Set("C1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", "Gadgets")
ws.Cells().Set("C2", 12.99)
wb.Save("inventory.xlsx")
读取单元格
Cells().Get(ref) 返回对应引用的 *Cell,如果引用无效则同时返回错误:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("C2", 12.99)
cell, err := ws.Cells().Get("C2")
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("C2 = %v\n", cell.Value)
当需要遍历整张工作表时,使用 Cells().All() 可以枚举集合中所有已填充的单元格。
添加公式
Cell.SetFormula 在单元格上存储公式字符串。先使用 Set 创建单元格,然后再附加公式——该公式在打开时由 Excel 或 LibreOffice 计算,而不是由库本身计算:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("D2", nil)
cell, _ := ws.Cells().Get("D2")
cell.SetFormula("C2*2")
CSV 转换
Workbook.ExportToCSV 将指定工作表索引导出为使用您选择的分隔符的 CSV 文件;Workbook.ImportFromCSV 将 CSV 文件读取到指定名称的工作表中:
wb := cells_foss.NewWorkbook()
if err := wb.ExportToCSV(0, "inventory.csv", ','); err != nil {
fmt.Printf("Error exporting: %v\n", err)
return
}
删除单元格
Cells().Remove(ref) 清除单元格的值:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A2", "Widget A")
if err := ws.Cells().Remove("A2"); err != nil {
fmt.Printf("Error removing cell: %v\n", err)
}
快速入门
安装模块:
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26一个最小化工作流 — 构建一个小表格并将其导出为 CSV:
package main
import (
"fmt"
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)
func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
if err := wb.ExportToCSV(0, "inventory.csv", ','); err != nil {
fmt.Printf("Error exporting: %v\n", err)
return
}
fmt.Println("Exported inventory.csv")
}
支持的格式
| 格式 | 扩展名 | 读取 | 写入 |
|---|---|---|---|
| XLSX | .xlsx | — | ✓ |
| CSV | .csv | ✓ | ✓ |
XLSX 工作簿在内存中通过 NewWorkbook 构建,并使用 Workbook.Save 写入。CSV 通过 Workbook.ImportFromCSV 和 Workbook.ExportToCSV 实现双向操作。
开源与许可
Aspose.Cells FOSS for Go 在 MIT 许可证下发布。没有使用限制、没有运行时费用,也没有注册要求。源代码可在 github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go 获取。
根据 MIT 许可证条款,允许商业使用。如果您的项目需要企业级支持、扩展的格式覆盖或云集成,Aspose.Cells — Enterprise Product Family 是单独的商业产品。