1. 製品
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for Go

Go 用 Aspose.Cells FOSS

Go から Excel スプレッドシートを作成、変更、エクスポートします — 無料かつオープンソース、外部依存ゼロ。

Excel スプレッドシート用のオープンソース Go ライブラリ

Aspose.Cells FOSS for Go は、Go アプリケーションで Excel スプレッドシート ファイルを操作するための無料かつオープンソースのライブラリです。go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 でインストールし、ワークブックの作成、セルの読み書き、スタイルの適用、データ検証の追加、CSV へのエクスポートを、Microsoft Excel や Office の依存なしで開始できます。

このライブラリは、Workbook、Worksheet、Cells、Cell を中心とした、小さくて慣用的な Go API を提供します。Cells() コレクションを通じて Get/Set/Remove でセルにアクセスし、Font、Fill、Alignment、Border から構築された再利用可能な Style オブジェクトに書式設定をまとめ、ヘッダー行と名前付きテーブルスタイルを持つ構造化された Table 範囲を作成します。専用の StreamingReader はコールバックを通じて .xlsx ワークブックを行単位で読み取り、シート全体をメモリにロードせずに大きなファイルを処理できます。

go.mod は外部依存関係を宣言していません — ライブラリは完全に Go 標準ライブラリのみで構築されています。MIT ライセンスで、GitHub にホストされており、単一の go get コマンドでインストールできます;cgo もネイティブ Office ライブラリも不要で、設定すべきシステムパッケージもありません。エンタープライズ製品ファミリーについては、Aspose.Cells — Enterprise Product Family をご覧ください。

Excel ファイルの読み取りと書き込み

  • セルアクセス: Cells().Get(ref) / Cells().Set(ref, value) を使用して値を読み書きします。
  • 数式: Cell.SetFormula/GetFormula はセルに数式文字列を格納します — 保存時ではなく、Excel または LibreOffice が開くときに評価されます。
  • CSV 相互運用: Workbook.ExportToCSV/ImportFromCSV と Worksheet.ToCSV/FromCSV は XLSX と CSV の間を変換します。
  • ストリーミング読み取り: StreamingReader.ProcessRows はコールバックを通じてワークシートを行単位でストリーミングし、シート全体をメモリに読み込まずに大容量ファイルを処理します。
  • パスワード保護: Workbook.SetPassword/VerifyPassword はブックのパスワードを設定および確認します。

Aspose.Cells FOSS が使用できる場所

  • Data pipelines: データベースクエリの結果を直接XLSXまたはCSVにエクスポートします。
  • Report generation: Go バックエンドサービスからスタイル付き Excel レポートを作成します。
  • Large-file processing: StreamingReader を使用して、メモリに完全にロードせずに数千行に及ぶワークブックをストリーミング処理します。
  • ETL workflows: 入力シートを読み取り、データを変換し、出力ワークブックを書き込みます。
  • CI/CD automation: Go ベースのビルドパイプラインや Docker コンテナ内でスプレッドシートアーティファクトを生成します。

スタイリング、データ検証、テーブル

  • Style objects: Font(名前、サイズ、太字、斜体、色)、Fill(タイプ、色)、Alignment(水平、垂直、テキスト折り返し)、Border(上/下/左/右、色)を再利用可能な Style にまとめ、Cell.SetStyle で適用します。
  • Data validation: Worksheet.AddDataValidation はリストと整数範囲の検証ルールを付加し、各ルールにカスタムエラータイトル、メッセージ、エラースタイルを設定できます。
  • Tables: Worksheet.AddTable/GetTable はオプションのヘッダー行と名前付きテーブルスタイルを持つ構造化された Table 範囲を作成します。
  • Pictures: Worksheet.AddPicture は画像 Picture を埋め込み、SetAnchor(row, col) で位置を指定します。

開発者体験

Aspose.Cells FOSS for Go は単一の go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 コマンドでインストールできます。 go.mod には require エントリがなく、検証やベンダリングが必要な外部依存関係はありません。

The API のインターフェイスは意図的にコンパクトです: Workbook、Worksheet、Cells、Cell、Style、およびいくつかの補助型が、スプレッドシートの作成、スタイリング、検証、CSV/ストリーミング I/O をカバーします。 コードベースは MIT ライセンスで、GitHub でホストされています。

Workbook を作成し、セルに書き込む

go getでインストールし、Workbookを作成し、最初のWorksheetにアクセスして、Cells()コレクションを介してセルに直接値を書き込み、保存します。

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26
func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]
	ws.Cells().Set("A1", "Hello")
	ws.Cells().Set("B1", "World")
	ws.Cells().Set("A2", "Answer")
	ws.Cells().Set("B2", 42)
	outPath := "outputfiles/basic.xlsx"
	if err := wb.Save(outPath); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Printf("Workbook saved to %s\n", outPath)
}

データ検証ルールを追加

2つの異なる列に、リスト型の検証(許可された値のドロップダウン)と整数範囲の検証を添付し、それぞれに固有のエラータイトルとメッセージを設定します。

func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]
	ws.Cells().Set("A1", "Fruit")
	ws.Cells().Set("A2", "Apple")
	ws.Cells().Set("A3", "Banana")
	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,
	}
	if err := ws.AddDataValidation("A2:A10", dv); err != nil {
		fmt.Printf("Error: %v\n", err)
		return
	}
	dv2 := &cells_foss.DataValidation{
		Type:             cells_foss.DataValidationTypeWhole,
		Formula1:         "1",
		Formula2:         "100",
		ShowErrorMessage: true,
		ErrorTitle:       "Invalid Value",
		ErrorMessage:     "Enter a whole number between 1 and 100.",
		ErrorStyle:       cells_foss.ErrorStyleWarning,
	}
	ws.Cells().Set("B1", "Score (1-100)")
	ws.AddDataValidation("B2:B10", dv2)
	outPath := "outputfiles/data_validation.xlsx"
	if err := wb.Save(outPath); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Printf("Workbook saved to %s\n", outPath)
}

大規模ワークブックを行ごとにストリーム

StreamingReader はコールバックを通じてワークシートを1行ずつ読み取るため、数千行に及ぶブックでもメモリに完全にロードする必要はありません。

func main() {
	genPath := "outputfiles/streaming_data.xlsx"
	sr := cells_foss.NewStreamingReader(genPath)
	rowCount := 0
	var totalScore float64
	err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
		rowCount++
		if rowIdx == 1 {
			fmt.Printf("  Header: %v\n", cells)
			return nil
		}
		if score, ok := cells["C"+fmt.Sprint(rowIdx)]; ok {
			var s float64
			fmt.Sscanf(score, "%f", &s)
			totalScore += s
		}
		return nil
	})
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error streaming: %v\n", err)
		os.Exit(1)
	}
	fmt.Printf("Streamed %d rows (header + %d data rows)\n", rowCount, rowCount-1)
}

よくある質問

Aspose.Cells FOSS for Go のライセンスモデルは何ですか?

Aspose.Cells FOSS for Go は MIT ライセンスの下でリリースされており、商用およびオープンソースでの使用を許可しています。

商用製品で使用できますか?

はい。MIT ライセンスは、元の著作権表示が保持されている限り、商用利用を許可し、独自のソースコードを開示する義務はありません。

どうすれば Aspose.Cells FOSS for Go をインストールできますか?

それを Go モジュールの依存関係として go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 で追加します。Go 1.24 以降が必要です。

外部依存関係はありますか?

いいえ。go.mod は require エントリを宣言していません — ライブラリは完全に Go 標準ライブラリ上に構築されています。

大きなワークブックをメモリに完全にロードせずに処理できますか?

はい。StreamingReader.ProcessRows はコールバックを通じてワークシートを行ごとに読み取り、メモリに全体をロードすることを回避します。

  

サポートと学習リソース

 日本語