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 をご覧ください。
Cells().Get(ref) / Cells().Set(ref, value) を使用して値を読み書きします。Cell.SetFormula/GetFormula はセルに数式文字列を格納します — 保存時ではなく、Excel または LibreOffice が開くときに評価されます。Workbook.ExportToCSV/ImportFromCSV と Worksheet.ToCSV/FromCSV は XLSX と CSV の間を変換します。StreamingReader.ProcessRows はコールバックを通じてワークシートを行単位でストリーミングし、シート全体をメモリに読み込まずに大容量ファイルを処理します。Workbook.SetPassword/VerifyPassword はブックのパスワードを設定および確認します。StreamingReader を使用して、メモリに完全にロードせずに数千行に及ぶワークブックをストリーミング処理します。Font(名前、サイズ、太字、斜体、色)、Fill(タイプ、色)、Alignment(水平、垂直、テキスト折り返し)、Border(上/下/左/右、色)を再利用可能な Style にまとめ、Cell.SetStyle で適用します。Worksheet.AddDataValidation はリストと整数範囲の検証ルールを付加し、各ルールにカスタムエラータイトル、メッセージ、エラースタイルを設定できます。Worksheet.AddTable/GetTable はオプションのヘッダー行と名前付きテーブルスタイルを持つ構造化された Table 範囲を作成します。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 でホストされています。
go getでインストールし、Workbookを作成し、最初のWorksheetにアクセスして、Cells()コレクションを介してセルに直接値を書き込み、保存します。
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26func 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 は MIT ライセンスの下でリリースされており、商用およびオープンソースでの使用を許可しています。
はい。MIT ライセンスは、元の著作権表示が保持されている限り、商用利用を許可し、独自のソースコードを開示する義務はありません。
それを Go モジュールの依存関係として go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 で追加します。Go 1.24 以降が必要です。
いいえ。go.mod は require エントリを宣言していません — ライブラリは完全に Go 標準ライブラリ上に構築されています。
はい。StreamingReader.ProcessRows はコールバックを通じてワークシートを行ごとに読み取り、メモリに全体をロードすることを回避します。