はじめに

Aspose.Cells FOSS for Go は、Excel スプレッドシートを操作するための純粋な Go ライブラリです。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 以降の任意のプロジェクトにインストールしてください。

この記事では、主要な機能であるセルのスタイリング、データ検証、テーブル、画像、ストリーミング読み取りについて説明します。


主な特徴

セルのスタイリング

FontFillAlignmentBorder 設定を再利用可能な 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)

AlignmentHorizontalVerticalWrapText を制御し、BorderTopBottomLeftRight の表示ルールと Color を制御します。

データ検証

Worksheet.AddDataValidation はセル範囲に検証ルールを付与します。DataValidation 構造体はルールの Type、1 つまたは 2 つの 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

最小限のワークフロー — ワークブックを作成し、2つのセルに書き込み、ヘッダーを太字にし、保存します:

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.ImportFromCSVWorkbook.ExportToCSV により双方向に扱えます。


オープンソース & ライセンス

Aspose.Cells FOSS for Go は MIT ライセンスの下でリリースされています。使用制限はなく、ランタイム料金も登録要件もありません。ソースコードは github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go にあります。

商用利用は MIT ライセンス条項に基づき許可されています。プロジェクトでエンタープライズレベルのサポート、拡張フォーマットのカバレッジ、またはクラウド統合が必要な場合、Aspose.Cells — Enterprise Product Family は別途の商用オファーです。


はじめに

関連リソース