機能概要

機能概要

Aspose.Cells FOSS for Go の API は WorkbookWorksheetCells、および Cell に焦点を当てています。このガイドでは、ライブラリのその他の機能であるスタイリング、データ検証、テーブル、画像、そして大きなファイル向けのストリーミング読み取りについて解説します。


セルのスタイリング

FontFillAlignment、および Border の設定を再利用可能な Style にまとめ、Cell.SetStyle を使ってセルに適用します:

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

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

highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
	Type:  cells_foss.FillTypeSolid,
	Color: "FF4472C4",
}

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

AlignmentHorizontalVerticalWrapText を制御します;BorderTopBottomLeft、および Right のルールの可視性と 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)

整数範囲の検証は DataValidationTypeWhole を使用し、Formula1/Formula2 を下限と上限として設定します。


テーブル

Worksheet.AddTable は、オプションのヘッダ行と名前付きテーブルスタイルを持つ、範囲上に構造化された Table を作成します:

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

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

Worksheet.GetTable(name) を使用して、名前で既存のテーブルを取得します。


画像

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 はコールバックを介してワークシートを行単位で読み取り、数千行に及ぶワークブックをメモリに完全にロードする必要がなくなります:

path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
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)
}

ヒントとベストプラクティス

  • ファイルに数千行ある可能性があり、読み取りだけで変更しない場合は、完全な Workbook ロードの代わりに StreamingReader を使用してください。
  • 一度 Style を作成し、セルごとに新しく作成するのではなく、複数のセルで再利用してください。
  • Cell.SetFormula は数式文字列をそのまま保存します — 保存時にライブラリが評価するのではなく、開いたときに Excel または LibreOffice が評価します。
  • SaveAddDataValidation、および CSV のインポート/エクスポート呼び出しからの error 戻り値を確認してください — 無効なパスや不正な入力によりスプレッドシートの I/O が失敗することがあります。

一般的な問題

IssueCause修正
セルの値が Set の後に表示されません誤ったシートの参照、または範囲外のセル参照Worksheet のインデックスと、A1 形式の参照が目的のセルと一致していることを確認してください
数式が計算されずに生テキストとして表示されますこのライブラリは数式文字列だけを保存し、数式は評価しませんExcel または LibreOffice でファイルを開くと、開く際に計算が実行されます
Excel でデータ検証が表示されません検証が、対象セルを含まない範囲に追加されました範囲文字列(例: "A2:A10")が、検証対象とするセルをカバーしていることを確認してください

FAQ

ライブラリは自ら数式を評価しますか?

No. Cell.SetFormula/GetFormula は、ファイルが開かれたときに Excel または LibreOffice が評価する数式文字列を格納します。

大きなワークブックをストリーム書き込みできますか?ストリーム読み取りだけでなく。

StreamingReader はストリーミング読み取りをカバーしています。大きなワークブックの書き込みは現在、標準のインメモリ Workbook/Worksheet API を通じて行われます。

AddTable は自動的にオートフィルタを適用しますか?

これは現在の API の表面では確認されていません — ドキュメント化されている Table フィールドは HasHeaderRowStyleName のみです。ご利用のケースで重要であれば、生成された .xlsx ファイルと照合してください。


API Reference 概要

クラス / メソッド説明
Workbook.NewWorkbook / Saveワークブックを作成して保存する
Worksheet.Cellsワークシートのセルコレクションにアクセスする
Cells.Get / Set / Remove / Allセルの読み取り、書き込み、削除、列挙
Cell.SetStyle / SetFormula / GetFormulaセルにスタイリングと数式を適用する
Style, Font, Fill, Alignment, Border再利用可能なセル書式を作成する
Worksheet.AddDataValidationセル範囲に検証ルールを付与する
Worksheet.AddTable / GetTable構造化テーブル範囲の作成と取得
Worksheet.AddPicture / Picture.SetAnchor(row, col)画像の埋め込みと配置
StreamingReader.ProcessRowsワークシートを行単位でストリーミング
Workbook.ExportToCSV / ImportFromCSVXLSX と CSV の相互変換
Workbook.SetPassword / VerifyPasswordワークブックのパスワードを保護および確認する

参照

 日本語