ワークシート
列の表示/非表示の設定
func (f *File) SetColVisible(sheet, col string, visible bool) error
指定されたワークシート名と列名に基づいて、指定された列の表示/非表示を設定します。この関数は同時実行安全です。例えば、ワークシート名Sheet1
の列D
を非表示にする場合:
err := f.SetColVisible("Sheet1", "D", false)
ワークシート名Sheet1
の列D
からF
を非表示にする場合:
err := f.SetColVisible("Sheet1", "D:F", false)
列の幅の設定
func (f *File) SetColWidth(sheet, startCol, endCol string, width float64) error
指定されたワークシート名、列の範囲、および幅の値に基づいて、1つ以上の列の幅を設定します。この関数は同時実行安全です。例えば、ワークシート名Sheet1
の列A
からH
の幅を20
に設定する場合:
err := f.SetColWidth("Sheet1", "A", "H", 20)
行の高さの設定
func (f *File) SetRowHeight(sheet string, row int, height float64) error
指定されたワークシート名、行番号、および高さの値に基づいて、1つの行の高さを設定します。例えば、ワークシート名Sheet1
の最初の行の高さを50
に設定する場合:
err := f.SetRowHeight("Sheet1", 1, 50)
行の表示/非表示の設定
func (f *File) SetRowVisible(sheet string, row int, visible bool) error
指定されたワークシート名と行番号に基づいて、指定された行の表示/非表示を設定します。例えば、ワークシート名Sheet1
の2行目を非表示にする場合:
err := f.SetRowVisible("Sheet1", 2, false)
ワークシート名の取得
func (f *File) GetSheetName(index int) string
与えられたワークシートのインデックスに基づいて、ワークシート名を取得します。ワークシートが存在しない場合、空の文字列が返されます。
列の表示/非表示の取得
func (f *File) GetColVisible(sheet, column string) (bool, error)
指定されたワークシート名と列名に基づいて、ワークシート内の指定された列の表示/非表示を取得します。true
の返り値は表示を、false
の返り値は非表示を示します。この関数は同時実行安全です。例えば、ワークシート名Sheet1
の列D
の表示/非表示を取得する場合:
visible, err := f.GetColVisible("Sheet1", "D")
列の幅の取得
func (f *File) GetColWidth(sheet, col string) (float64, error)
指定されたワークシート名と列名に基づいて、ワークシート内の指定された列の幅を取得します。この関数は同時実行安全です。
行の高さの取得
func (f *File) GetRowHeight(sheet string, row int) (float64, error)
指定されたワークシート名と行番号に基づいて、ワークシート内の指定された行の高さを取得します。例えば、ワークシート名Sheet1
の最初の行の高さを取得する場合:
height, err := f.GetRowHeight("Sheet1", 1)
行の表示/非表示の取得
func (f *File) GetRowVisible(sheet string, row int) (bool, error)
指定されたワークシート名と行番号に基づいて、ワークシート内の指定された行の表示/非表示を取得します。例えば、ワークシート名Sheet1
の2行目の表示/非表示を取得する場合:
visible, err := f.GetRowVisible("Sheet1", 2)
ワークシートのインデックスの取得
func (f *File) GetSheetIndex(sheet string) (int, error)
ワークシート名に基づいて、対応するワークシートのインデックスを取得します。ワークシートが存在しない場合は-1
が返されます。取得したインデックスは、SetActiveSheet()
関数を呼び出す際のパラメータとして使用でき、ワークブックのデフォルトのワークシートを設定する際に利用できます。
ワークシートのマッピングを取得する
func (f *File) GetSheetMap() map[int]string
ブック内のすべてのワークシート、グラフシート、およびダイアログシートのマッピングを、IDと名前で表します。
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
for index, name := range f.GetSheetMap() {
fmt.Println(index, name)
}
ワークシートのリストを取得する
func (f *File) GetSheetList() []string
ワークブックに表示される順序で、ワークシート、グラフシート、およびダイアログシートのリストを取得します。
ワークシートの名前を設定する
func (f *File) SetSheetName(source, target string) error
指定された古いワークシート名と新しいワークシート名に基づいてワークシートの名前を変更します。ワークシート名には最大31文字まで使用できます。この関数はワークシートの名前のみを変更し、セルやワークシート名を参照する数式は更新されません。したがって、この関数を使用してワークシートの名前を変更すると、数式エラーや参照の問題が発生する可能性があります。
列の挿入
func (f *File) InsertCols(sheet, col string, n int) error
指定されたワークシート名、列名、および挿入する列の数に基づいて、指定された列の前に空の列を挿入します。たとえば、Sheet1
というワークシートのC
列の前に空の列を2つ挿入します。
err := f.InsertCols("Sheet1", "C", 2)
行の挿入
func (f *File) InsertRows(sheet string, row, n int) error
指定されたワークシート名、行番号、および挿入する行の数に基づいて、指定された行の前に空の行を挿入します。たとえば、Sheet1
というワークシートの3行目の前に空の行を2つ挿入します。
err := f.InsertRows("Sheet1", 3, 2)
行を追加してコピーする
func (f *File) DuplicateRow(sheet string, row int) error
指定されたワークシート名に基づいて、指定された行番号の後に複製を追加します。たとえば、Sheet1
というワークシートの2行目を3行目に複製します。
err := f.DuplicateRow("Sheet1", 2)
このメソッドを使用する際は注意が必要です。これにより、ワークシート内の元の数式、グラフ、およびその他のリソース参照に影響が及びます。ワークシートに参照値が含まれる場合、このメソッドを使用した後にExcelアプリケーションでワークシートを開くと、ファイルのエラーが発生する可能性があります。現在、excelizeはワークシートの部分的な参照のみをサポートしています。
行の複製
func (f *File) DuplicateRowTo(sheet string, row, row2 int) error
指定されたワークシート名と行番号に基づいて、指定された行の後に行を複製します。たとえば、Sheet1
というワークシートの2行目を7行目の後に複製します。
err := f.DuplicateRowTo("Sheet1", 2, 7)
このメソッドを使用する際は注意が必要です。これにより、ワークシート内の元の数式、グラフ、およびその他のリソース参照に影響が及びます。ワークシートに参照値が含まれる場合、このメソッドを使用した後にExcelアプリケーションでワークシートを開くと、ファイルのエラーが発生する可能性があります。現在、excelizeはワークシートの部分的な参照のみをサポートしています。
行のアウトラインレベルを設定する
func (f *File) SetRowOutlineLevel(sheet string, row int, level uint8) error
指定されたワークシート名、行番号、およびアウトラインレベルのパラメータに基づいてグループを作成します。たとえば、Sheet1
というワークシートの2行目にレベル1のグループを作成します。
err := f.SetRowOutlineLevel("Sheet1", 2, 1)
列のアウトラインレベルを設定する
func (f *File) SetColOutlineLevel(sheet, col string, level uint8) error
与えられたシート名、列名、およびアウトラインレベルのパラメータに基づいてグループを作成します。たとえば、ワークシートの名前がSheet1
で、D
列にレベル2のグループを作成します。
err := f.SetColOutlineLevel("Sheet1", "D", 2)
行のアウトラインレベルを取得する
func (f *File) GetRowOutlineLevel(sheet string, row int) (uint8, error)
与えられたシート名と行番号に基づいてアウトラインレベルを取得します。たとえば、ワークシートの名前が Sheet1
で、2番目の行のアウトラインレベルを取得します。
level, err := f.GetRowOutlineLevel("Sheet1", 2)
列のアウトラインレベルを取得する
func (f *File) GetColOutlineLevel(sheet, col string) (uint8, error)
与えられたシート名と列名に基づいてアウトラインレベルを取得します。たとえば、ワークシートの名前が Sheet1
で、D
列のアウトラインレベルを取得します。
level, err := f.GetColOutlineLevel("Sheet1", "D")
列のイテレータ
func (f *File) Cols(sheet string) (*Cols, error)
指定されたワークシートの列イテレータを取得します。この機能は並行して使用できます。列イテレータを使用してストリーミング読み込みとセルの走査を行います。
cols, err := f.Cols("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for cols.Next() {
col, err := cols.Rows()
if err != nil {
fmt.Println(err)
}
for _, rowCell := range col {
fmt.Print(rowCell, "\t")
}
fmt.Println()
}
列のイテレータ - 単一列の値の取得
func (cols *Cols) Rows(opts ...Options) ([]string, error)
現在の列のすべての行の値を返します。
列のイテレータ - 走査操作
func (cols *Cols) Next() bool
次の列に値がある場合、true
を返します。
列のイテレータ - エラー処理
func (cols *Cols) Error() error
次の列の検索中にエラーが発生した場合、エラーを返します。
行のイテレータ
func (f *File) Rows(sheet string) (*Rows, error)
指定されたシート名の行イテレータを取得します。この機能は並行安全です。行イテレータを使用してストリーミング読み込みのためにセルを反復処理します。
rows, err := f.Rows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for rows.Next() {
row, err := rows.Columns()
if err != nil {
fmt.Println(err)
}
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
if err = rows.Close(); err != nil {
fmt.Println(err)
}
行のイテレータ - 単一行の操作
func (rows *Rows) Columns(opts ...Options) ([]string, error)
この関数はワークシートを行単位でストリーミング読み込みし、ワークシートの末尾にある有効な空白の行をスキップせずに、現在の行の各セルの値を返します。
行のイテレータ - 走査操作
func (rows *Rows) Next() bool
次の行に値がある場合、true
を返します。
行のイテレータ - エラー処理
func (rows *Rows) Error() error
次の行の検索中にエラーが発生した場合、error
を返します。
行のイテレータ - 行のプロパティの取得
func (rows *Rows) GetRowOpts() RowOpts
行の高さ、表示、およびスタイルIDなど、現在の行のプロパティを返します。
行のイテレータ - データストリームのクローズ
func (rows *Rows) Close() error
データストリームを閉じ、ワークシートを開く際に生成されたシステムディスクキャッシュをクリーンアップします。
ワークシート内の検索
func (f *File) SearchSheet(sheet, value string, reg ...bool) ([]string, error)
与えられたワークシート名、セルの値、または正規表現に基づいて座標を取得します。この関数は文字列と数字の完全一致のみをサポートし、計算結果、フォーマットされた数字、条件付き検索はサポートしていません。検索結果が結合されたセルの場合、結合領域の左上隅の座標が返されます。
例えば、ワークシート「Sheet1」内で値 100
の座標を検索する場合:
result, err := f.SearchSheet("Sheet1", "100")
例えば、ワークシート「Sheet1」内で範囲 0-9
の数値の座標を検索する場合:
result, err := f.SearchSheet("Sheet1", "[0-9]", true)
ワークシートの保護
func (f *File) ProtectSheet(sheet string, opts *SheetProtectionOptions) error
ワークシート内のデータが他のユーザーによって誤ってまたは意図的に変更、移動、または削除されるのを防ぎます。オプションのフィールド AlgorithmName
は、ハッシュアルゴリズムとして XOR、MD4、MD5、SHA-1、SHA-256、SHA-384、または SHA-512 を指定できます。ハッシュアルゴリズムが指定されていない場合、デフォルトで XOR アルゴリズムが使用されます。例えば、ワークシート「Sheet1」にパスワード保護を設定し、ロックされたセルの選択、ロックされていないセルの選択、およびシナリオの編集を許可する場合:
err := f.ProtectSheet("Sheet1", &excelize.SheetProtectionOptions{
AlgorithmName: "SHA-512",
Password: "password",
SelectLockedCells: true,
SelectUnlockedCells: true,
EditScenarios: true,
})
SheetProtectionOptions は、ワークシートを保護するための設定オプションを定義します。
type SheetProtectionOptions struct {
AlgorithmName string
AutoFilter bool
DeleteColumns bool
DeleteRows bool
EditObjects bool
EditScenarios bool
FormatCells bool
FormatColumns bool
FormatRows bool
InsertColumns bool
InsertHyperlinks bool
InsertRows bool
Password string
PivotTables bool
SelectLockedCells bool
SelectUnlockedCells bool
Sort bool
}
ワークシートの保護解除
func (f *File) UnprotectSheet(sheet string, password ...string) error
与えられたワークシート名に基づいてワークシートの保護を解除し、第2のオプションのパスワードパラメータを指定してワークシートの保護をパスワード検証でキャンセルします。
列の削除
func (f *File) RemoveCol(sheet, col string) error
与えられたワークシート名と列名に基づいて指定された列を削除します。例えば、ワークシート「Sheet1」で C
列を削除する場合:
err := f.RemoveCol("Sheet1", "C")
これを慎重に使用してください。これにより、ワークシート内の元の式、チャート、および他のリソース参照へのすべての変更に影響が出ます。ワークシートに参照値が含まれている場合、このメソッドを使用すると、Excel アプリケーションを使用して開いた際にファイルエラーが発生する可能性があります。Excelize は現在、ワークシート内の参照値に対する部分的な更新のみをサポートしています。
行の削除
func (f *File) RemoveRow(sheet string, row int) error
与えられたワークシート名と行番号に基づいて指定された行を削除します。例えば、ワークシート「Sheet1」の3行目を削除する場合:
err := f.RemoveRow("Sheet1", 3)
これを慎重に使用してください。これにより、ワークシート内の元の式、チャート、および他のリソース参照へのすべての変更に影響が出ます。ワークシートに参照値が含まれている場合、このメソッドを使用すると、Excel アプリケーションを使用して開いた際にファイルエラーが発生する可能性があります。Excelize は現在、ワークシート内の参照値に対する部分的な更新のみをサポートしています。
列による値の割り当て
func (f *File) SetSheetCol(sheet, cell string, slice interface{}) error
与えられたワークシート名、開始座標、および slice
タイプの参照に基づいて列ごとに値を割り当てます。例えば、ワークシート「Sheet1」の列 B
に値を割り当て、開始座標をセル B6
に設定する場合:
err := f.SetSheetCol("Sheet1", "B6", &[]interface{}{"1", nil, 2})
行ごとに割り当てる
func (f *File) SetSheetRow(sheet, cell string, slice interface{}) error
指定されたワークシート名、開始座標、およびslice
の参照に基づいて行ごとに値を割り当てます。この関数は並行安全です。例えば、Sheet1
という名前のワークシートの6行目では、セルB6
から開始して行ごとに値を割り当てることができます。
err := f.SetSheetRow("Sheet1", "B6", &[]interface{}{"1", nil, 2})
ページ区切りの挿入
func (f *File) InsertPageBreak(sheet, cell string) error
指定されたワークシート名とセル座標に基づいてページ区切りを挿入します。ページ区切りは印刷目的でワークシートを個々のページに区切るラインです。
ページ区切りの削除
func (f *File) RemovePageBreak(sheet, cell string) error
指定されたワークシート名とセル座標に基づいてページ区切りを削除します。
ワークシートの範囲を設定
func (f *File) SetSheetDimension(sheet string, rangeRef string) error
指定されたワークシート名とセル座標またはセル座標範囲に基づいてワークシートの使用領域を設定または削除します。使用されるセルには、数式、テキストコンテンツ、セルの書式設定などが含まれます。たとえば、A1:D5
のような要素です。指定されたセル座標範囲が空の文字列の場合、ワークシートの使用領域を削除します。
ワークシートの範囲を取得
func (f *File) GetSheetDimension(sheet string) (string, error)
指定されたワークシート名に基づいて、指定されたワークシートの使用領域を取得します。