機能概要
機能概要
Aspose.Cells FOSS for Go の API は Workbook、Worksheet、Cells、および Cell に焦点を当てています。このガイドでは、ライブラリのその他の機能であるスタイリング、データ検証、テーブル、画像、そして大きなファイル向けのストリーミング読み取りについて解説します。
セルのスタイリング
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
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)Alignment は Horizontal、Vertical、WrapText を制御します;Border は Top、Bottom、Left、および 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 が評価します。Save、AddDataValidation、および CSV のインポート/エクスポート呼び出しからのerror戻り値を確認してください — 無効なパスや不正な入力によりスプレッドシートの I/O が失敗することがあります。
一般的な問題
| Issue | Cause | 修正 |
|---|---|---|
セルの値が Set の後に表示されません | 誤ったシートの参照、または範囲外のセル参照 | Worksheet のインデックスと、A1 形式の参照が目的のセルと一致していることを確認してください |
| 数式が計算されずに生テキストとして表示されます | このライブラリは数式文字列だけを保存し、数式は評価しません | Excel または LibreOffice でファイルを開くと、開く際に計算が実行されます |
| Excel でデータ検証が表示されません | 検証が、対象セルを含まない範囲に追加されました | 範囲文字列(例: "A2:A10")が、検証対象とするセルをカバーしていることを確認してください |
FAQ
ライブラリは自ら数式を評価しますか?
No. Cell.SetFormula/GetFormula は、ファイルが開かれたときに Excel または LibreOffice が評価する数式文字列を格納します。
大きなワークブックをストリーム書き込みできますか?ストリーム読み取りだけでなく。
StreamingReader はストリーミング読み取りをカバーしています。大きなワークブックの書き込みは現在、標準のインメモリ Workbook/Worksheet API を通じて行われます。
AddTable は自動的にオートフィルタを適用しますか?
これは現在の API の表面では確認されていません — ドキュメント化されている Table フィールドは HasHeaderRow と StyleName のみです。ご利用のケースで重要であれば、生成された .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 / ImportFromCSV | XLSX と CSV の相互変換 |
Workbook.SetPassword / VerifyPassword | ワークブックのパスワードを保護および確認する |