介绍

Aspose.Cells FOSS for Go 是一个纯 Go 库,用于处理 Excel 电子表格。它提供了一个 API,可以从头创建新工作簿、写入和样式化单元格值、应用数据验证规则、构建结构化表格、嵌入图片,并且能够一次逐行读取大型 .xlsx 文件——全部无需任何本地 C 或 C++ 依赖。

该库可作为 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+ 项目中。

本文涵盖核心功能:单元格样式、数据验证、表格、图片以及流式读取。


关键特性

单元格样式

将 Font、Fill、Alignment 和 Border 设置组合成可复用的 Style,然后使用 Cell.SetStyle 将其应用于单元格:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment 控制 Horizontal、Vertical 和 WrapText;Border 控制 Top、Bottom、Left 和 Right 规则的可见性以及 Color。

数据验证

Worksheet.AddDataValidation 将验证规则附加到单元格范围。DataValidation 结构体包含规则 Type、一个或两个 Formula 值,以及错误消息字段:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

dv := &cells_foss.DataValidation{
	Type:             cells_foss.DataValidationTypeList,
	Formula1:         `"Apple,Banana,Cherry,Dragonfruit"`,
	AllowBlank:       true,
	ShowErrorMessage: true,
	ErrorTitle:       "Invalid Fruit",
	ErrorMessage:     "Please pick a fruit from the list.",
	ErrorStyle:       cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)

表格

Worksheet.AddTable 在一个范围上创建结构化的 Table,可选标题行并使用命名的表格样式:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")

tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

图片

Worksheet.AddPicture 嵌入图像;Picture.SetAnchor(row, col) 定位它:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

流式传输大文件

StreamingReader 通过回调逐行读取工作表,因此即使是数千行的工作簿也无需完整加载到内存中:

sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

快速入门

安装模块:

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

最简工作流 — 创建工作簿,写入两个单元格,加粗标题,然后保存:

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", "Product")
	ws.Cells().Set("B1", "Revenue")

	boldStyle := cells_foss.NewStyle()
	boldStyle.Font.Bold = true
	for _, ref := range []string{"A1", "B1"} {
		cell, _ := ws.Cells().Get(ref)
		cell.SetStyle(boldStyle)
	}

	if err := wb.Save("report.xlsx"); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Println("Workbook saved to report.xlsx")
}

支持的格式

格式扩展名读取写入
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 是单独的商业产品。


快速入门

相关资源