介绍

除了创建和样式化工作簿之外,大多数日常的电子表格代码主要花时间在读取和写入单元格值、附加公式以及在 XLSX 与 CSV 之间移动数据。Aspose.Cells FOSS 的 Go 版通过 WorkbookCells 类型覆盖了这三项功能。

该库可作为 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.ImportFromCSVWorkbook.ExportToCSV 实现双向操作。


开源与许可

Aspose.Cells FOSS for Go 在 MIT 许可证下发布。没有使用限制、没有运行时费用,也没有注册要求。源代码可在 github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go 获取。

根据 MIT 许可证条款,允许商业使用。如果您的项目需要企业级支持、扩展的格式覆盖或云集成,Aspose.Cells — Enterprise Product Family 是单独的商业产品。


快速入门

相关资源