ワークブック
Options
は、スプレッドシートの読み込みおよび書き込みのオプションを定義します。
type Options struct {
MaxCalcIterations uint
Password string
RawCellValue bool
UnzipSizeLimit int64
UnzipXMLSizeLimit int64
ShortDatePattern string
LongDatePattern string
LongTimePattern string
CultureInfo CultureName
}
MaxCalcIterations
は、数式を計算する際の最大反復回数を指定するために使用され、デフォルト値は0です。
Password
は、ブックを平文で開くおよび保存するためのパスワードを指定するために使用され、デフォルト値は空です。
RawCellValue
は、セルの値を読み取る際に生の値を取得するかどうかを指定するために使用され、デフォルト値は false
(数値フォーマットを適用)です。
UnzipSizeLimit
は、スプレッドシートのドキュメントを開く際の解凍のサイズ制限(バイト単位)を指定するために使用され、UnzipXMLSizeLimit
より大きくする必要があり、デフォルトの制限は16GBです。
UnzipXMLSizeLimit
は、ワークシートと共有文字列テーブルを解凍する際のメモリ制限(バイト単位)を指定するために使用され、この値を超えると、ワークシート XML ファイルがシステムの一時ディレクトリに解凍されます。この値は UnzipSizeLimit
より小さくする必要があり、デフォルトの制限は16MBです。
ShortDatePattern
は、短い日付数値形式コードを指定するために使用されます。
LongDatePattern
は、長い日付数値形式コードを指定するために使用されます。
LongTimePattern
は、長い時間数値形式コードを指定するために使用されます。
CultureInfo
は、地域ごとの日付や時間設定に影響を受ける数値形式を読み取る際に使用される地域の形式を指定するために使用されます。
作成
func NewFile(opts ...Options) *File
NewFile
を使用して新しいExcelワークブックを作成し、デフォルトで Sheet1
という名前のワークシートが含まれます。
開く
func OpenFile(filename string, opts ...Options) (*File, error)
OpenFile
を使用して既存のExcelドキュメントを開きます。たとえば、パスワードで保護されたスプレッドシートドキュメントを開く場合:
f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "password"})
if err != nil {
return
}
Close()
を使用して開いたワークブックを閉じます。
データストリームを開く
func OpenReader(r io.Reader, opts ...Options) (*File, error)
OpenReader は io.Reader
からデータを読み込みます。
以下の例では、アップロードされたスプレッドシートドキュメントを受け取り、新しいワークシートを追加し、ダウンロード応答を返すためにシンプルな HTTP サーバーを作成します。
package main
import (
"fmt"
"net/http"
"github.com/xuri/excelize/v2"
)
func process(w http.ResponseWriter, req *http.Request) {
file, _, err := req.FormFile("file")
if err != nil {
fmt.Fprint(w, err.Error())
return
}
defer file.Close()
f, err := excelize.OpenReader(file)
if err != nil {
fmt.Fprint(w, err.Error())
return
}
f.Path = "Book1.xlsx"
f.NewSheet("NewSheet")
w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", f.Path))
w.Header().Set("Content-Type", req.Header.Get("Content-Type"))
if err := f.Write(w); err != nil {
fmt.Fprint(w, err.Error())
}
}
func main() {
http.HandleFunc("/process", process)
http.ListenAndServe(":8090", nil)
}
cURL を使用してテストする:
curl --location --request GET 'http://127.0.0.1:8090/process' \
--form 'file=@/tmp/template.xltx' -O -J
保存
func (f *File) Save(opts ...Options) error
Save
を使用してExcelドキュメントへの編集を保存します。
名前を付けて保存
func (f *File) SaveAs(name string, opts ...Options) error
SaveAs
を使用してExcelドキュメントを指定されたファイルとして保存します。
ワークブックを閉じる
func (f *File) Close() error
ワークブックを閉じ、ドキュメントを開く際に作成されたシステムディスクキャッシュをクリーンアップします。
新しいワークシート
func (f *File) NewSheet(sheet string) (int, error)
指定されたワークシート名に基づいて新しいワークシートを作成し、ワークブック内のワークシートのインデックスを返します。新しいワークブックを作成すると、デフォルトのワークシートとして Sheet1
が含まれます。
ワークシートの削除
func (f *File) DeleteSheet(sheet string) error
指定されたワークシートを削除します。このメソッドを使用する際は注意が必要です。削除されたワークシートに関連する数式、参照、グラフなどの要素に影響を与えます。削除されたワークシートへの参照がある場合、エラーが表示され、ワークブックの開くことすら失敗する可能性があります。ワークブックにワークシートが1つしか含まれていない場合、このメソッドの呼び出しは無効です。
ワークシートのコピー
func (f *File) CopySheet(from, to int) error
指定されたソースのワークシートとターゲットのワークシートインデックスに基づいてワークシートをコピーします。開発者は、ターゲットのワークシートインデックスが既に存在するかどうかを確認する必要があります。現在、セルの値や数式を含むワークシートのコピーのみがサポートされています。テーブル、画像、グラフ、ピボットテーブルを含むワークシートのコピーはサポートされていません。
// ワークシートSheet1という名前のワークシートが既に存在する場合...
index, err := f.NewSheet("Sheet2")
if err != nil {
fmt.Println(err)
return
}
err := f.CopySheet(1, index)
ワークシートのグループ化
func (f *File) GroupSheets(sheets []string) error
指定されたワークシート名に基づいてワークシートをグループ化します。与えられたワークシートにはデフォルトのワークシートが含まれている必要があります。
ワークシートのグループ解除
func (f *File) UngroupSheets() error
ワークシートのグループを解除します。
ワークシートの背景画像の設定
func (f *File) SetSheetBackground(sheet, picture string) error
指定されたワークシート名と画像ファイルのパスに基づいて、ワークシートのタイル状の背景画像を設定します。サポートされる画像ファイル形式には、BMP、EMF、EMZ、GIF、JPEG、JPG、PNG、SVG、TIF、TIFF、WMF、WMZがあります。
func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error
指定されたワークシート名、画像形式の拡張子、および画像形式データに基づいて、ワークシートのタイル状の背景画像を設定します。サポートされる画像ファイル形式には、BMP、EMF、EMZ、GIF、JPEG、JPG、PNG、SVG、TIF、TIFF、WMF、WMZがあります。
デフォルトのワークシートの設定
func (f *File) SetActiveSheet(index int)
与えられたインデックス値に基づいて、デフォルトのワークシートを設定します。この値は 0
以上かつワークブック内のワークシートの合計数未満である必要があります。
デフォルトのワークシートのインデックスの取得
func (f *File) GetActiveSheetIndex() int
デフォルトのワークシートのインデックスを取得し、デフォルトのワークシートが見つからない場合は0
を返します。
ワークシートの表示設定
func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error
指定されたワークシート名と表示パラメータに基づいて、ワークシートの表示を設定します。ワークブックには少なくとも1つの表示されるワークシートが含まれている必要があります。指定されたワークシートがデフォルトのワークシートの場合は、表示設定は無効です。3番目のオプションパラメータ veryHidden
は、visible
パラメータ値がfalse
の場合にのみ有効です。
例えば、ワークシート名が Sheet1
のワークシートを非表示にする場合:
err := f.SetSheetVisible("Sheet1", false)
ワークシートの表示設定の取得
func (f *File) GetSheetVisible(sheet string) (bool, error)
指定されたワークシート名に基づいて、ワークシートの表示設定を取得します。例えば、ワークシート名が Sheet1
のワークシートの表示設定を取得する場合:
visible, err := f.GetSheetVisible("Sheet1")
シートのプロパティを設定する
func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error
指定されたワークシートの名前とプロパティオプションに基づいてワークシートのプロパティを設定します。サポートされているワークシートのプロパティオプションは以下の通りです:
Property | Type | Description |
---|---|---|
CodeName | *string |
コード名 |
EnableFormatConditionsCalculation | *bool |
条件付き書式の自動計算を指定し、デフォルト値は true です |
Published | *bool |
ワークシートが公開されているかどうかを指定し、デフォルト値は true です |
AutoPageBreaks | *bool |
ワークシートが自動的にページを分割するかどうかを指定し、デフォルト値は true です |
FitToPage | *bool |
ページに合わせて印刷を有効にするかどうかを指定し、デフォルト値は false です |
TabColorIndexed | *int |
過去の互換性のあるインデックスカラー値 |
TabColorRGB | *string |
標準のARGBカラー値 |
TabColorTheme | *int |
0 から始まるテーマカラーインデックス |
TabColorTint | *float64 |
カラーに適用されるティント値で、デフォルト値は 0.0 です |
OutlineSummaryBelow | *bool |
アウトラインの方向を指定し、詳細データの下にあるかどうかを指定し、デフォルト値は true です |
OutlineSummaryRight | *bool |
アウトラインの方向を指定し、詳細データの右側にあるかどうかを指定し、デフォルト値は true です |
BaseColWidth | *uint8 |
文字数で表される基本的な列幅で、デフォルト値は 8 です |
DefaultColWidth | *float64 |
マージンとグリッド線を含むデフォルトの列幅 |
DefaultRowHeight | *float64 |
ポイントで表される行の高さ |
CustomHeight | *bool |
カスタム行の高さが適用されているかどうかを指定し、デフォルト値は false です |
ZeroHeight | *bool |
デフォルトで行が非表示になっているかどうかを指定し、デフォルト値は false です |
ThickTop | *bool |
デフォルトで行に太い上部の境界線があるかどうかを指定し、デフォルト値は false です |
ThickBottom | *bool |
デフォルトで行に太い下部の境界線があるかどうかを指定し、デフォルト値は false です |
例えば、ワークシート名が Sheet1
のデフォルト行を非表示に設定する場合:
f, enable := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
ZeroHeight: &enable,
}); err != nil {
fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
fmt.Println(err)
}
f.SaveAs("Book1.xlsx")
シートのプロパティを取得する
func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)
指定されたワークシート名に基づいてワークシートのプロパティを取得します。
シートビューのプロパティを設定する
func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error
指定されたシート名、ビューインデックス、およびビューオプションに基づいて、シートビュープロパティを設定します。 viewIndex
は負の数である場合、逆向きにカウントされます(-1
は最後のビューを表します)。シートビュープロパティを設定するためのサポートされているオプションは以下の通りです:
プロパティ | タイプ | 説明 |
---|---|---|
DefaultGridColor | *bool |
デフォルトのグリッドラインの色を使用するかどうかを指定します。デフォルト値は true です。 |
RightToLeft | *bool |
右から左に表示するかどうかを指定します。デフォルト値は false です。 |
ShowFormulas | *bool |
ワークシートが数式を表示するかどうかを指定します。デフォルト値は false です。 |
ShowGridLines | *bool |
ワークシートがグリッド線を表示するかどうかを指定します。デフォルト値は true です。 |
ShowRowColHeaders | *bool |
ワークシートが行と列の見出しを表示するかどうかを指定します。デフォルト値は true です。 |
ShowRuler | *bool |
ページレイアウトビューでルーラーを表示するかどうかを指定します。デフォルト値は true です。 |
ShowZeros | *bool |
セル内のゼロ値を表示するかどうかを指定します。デフォルト値は true です。それ以外の場合は空白として表示されます。 |
TopLeftCell | *string |
表示される左上のセルの座標を指定します。 |
View | *string |
ワークシートビューの種類を示します。列挙値には normal 、pageBreakPreview 、pageLayout があります。 |
ZoomScale | *float64 |
現在の表示ウィンドウのズームスケールパーセンテージを指定します。範囲は10から400に制限され、デフォルト値は 100 です。 |
シートビューのプロパティを取得する
func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)
指定されたシート名とビューインデックスに基づいて、シートビュープロパティを取得します。 viewIndex
は負の数である場合、逆向きにカウントされます(-1
は最後のビューを表します)。
ワークシートのページレイアウト設定
func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error
指定されたワークシート名とページレイアウトパラメータに基づいて、ワークシートのページレイアウト属性を設定します。現在サポートされているページレイアウト属性は次のとおりです:
Size
属性は、ページの用紙サイズを指定し、デフォルトのページレイアウトサイズは "Letter 8½ × 11 inches" です。以下の表は、ページレイアウトサイズとExcelizeのインデックス Size
パラメータの関係を示しています:
インデックス | 用紙サイズ |
---|---|
1 | Letter 8½ × 11 インチ |
2 | Letter Small 8½ × 11 インチ |
3 | Tabloid 11 × 17 インチ |
4 | Ledger 17 × 11 インチ |
... | ... |
40 | German Standard ファンフォールド 8.5 × 12 インチ |
41 | German legal paper ファンフォールド 8.5 × 13 インチ |
42 | ISO B4 250 × 353 ミリメートル |
43 | Japanese ポストカード 100 × 148 ミリメートル |
44 | Standard paper 9 × 11 インチ |
45 | Standard paper 10 × 11 インチ |
46 | Standard paper 15 × 11 インチ |
47 | 招待状 220 × 220 ミリメートル |
50 | Letterhead enlarged 9.275 × 12 インチ |
51 | 特大法人用紙 9.275 × 15 インチ |
52 | タブロイド特大用紙 11.69 × 18 インチ |
53 | A4 特大 236 × 322 ミリメートル |
54 | Letterhead landscape 8.275 × 11 インチ |
55 | A4 ランドスケープ 210 × 297 ミリメートル |
56 | Letterhead 特大ランドスケープ 9.275 × 12 インチ |
57 | SuperA/SuperA/A4 227 × 356 ミリメートル |
58 | SuperB/SuperB/A3 305 × 487 ミリメートル |
59 | Letterhead 特大 8.5 × 12.69 インチ |
60 | A4 特大 210 × 330 ミリメートル |
61 | A5 ランドスケープ 148 × 210 ミリメートル |
62 | JIS B5 ランドスケープ 182 × 257 ミリメートル |
63 | A3 特大 322 × 445 ミリメートル |
64 | A5 特大 174 × 235 ミリメートル |
65 | ISO B5 特大 201 × 276 ミリメートル |
66 | A2 420 × 594 ミリメートル |
67 | A3 ランドスケープ 297 × 420 ミリメートル |
68 | A3 特大ランドスケープ 322 × 445 ミリメートル |
69 | 二つ折りポストカード 200 × 148 ミリメートル |
70 | A6 105 × 148 ミリメートル |
71 | 日本封筒 角 #2 |
72 | 日本封筒 角 #3 |
73 | 日本封筒 長 #3 |
74 | 日本封筒 長 #4 |
75 | Letterhead ランドスケープ 11 × 8½ インチ |
76 | A3 ランドスケープ 420 × 297 ミリメートル |
77 | A4 ランドスケープ 297 × 210 ミリメートル |
78 | A5 ランドスケープ 210 × 148 ミリメートル |
79 | B4 (JIS) ランドスケープ 364 × 257 ミリメートル |
80 | B5 (JIS) ランドスケープ 257 × 182 ミリメートル |
81 | 日本ポストカード ランドスケープ 148 × 100 ミリメートル |
82 | 二つ折りポストカード ランドスケープ 148 × 200 ミリメートル |
83 | A6 ランドスケープ 148 × 105 ミリメートル |
84 | 日本封筒 角 #2 ランドスケープ |
85 | 日本封筒 角 #3 ランドスケープ |
86 | 日本封筒 長 #3 ランドスケープ |
```markdown
| 87 | 日本の封筒 チョウ #4 横書き |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) 横書き 182 × 128 mm |
| 90 | 12 × 11 インチ |
| 91 | 日本の封筒 洋 #4 |
| 92 | 日本の封筒 洋 #4 横書き |
| 93 | 中国の16K 146 × 215 mm |
| 94 | 中国の32K 97 × 151 mm |
| 95 | 中国の大きい32K 97 × 151 mm |
| 96 | 中国の封筒 #1 102 × 165 mm |
| 97 | 中国の封筒 #2 102 × 176 mm |
| 98 | 中国の封筒 #3 125 × 176 mm |
| 99 | 中国の封筒 #4 110 × 208 mm |
| 100 | 中国の封筒 #5 110 × 220 mm |
| 101 | 中国の封筒 #6 120 × 230 mm |
| 102 | 中国の封筒 #7 160 × 230 mm |
| 103 | 中国の封筒 #8 120 × 309 mm |
| 104 | 中国の封筒 #9 229 × 324 mm |
| 105 | 中国の封筒 #10 324 × 458 mm |
| 106 | 中国の16K 横書き |
| 107 | 中国の32K 横書き |
| 108 | 中国の大きい32K 横書き |
| 109 | 中国の封筒 #1 横書き 165 × 102 mm |
| 110 | 中国の封筒 #2 横書き 176 × 102 mm |
| 111 | 中国の封筒 #3 横書き 176 × 125 mm |
| 112 | 中国の封筒 #4 横書き 208 × 110 mm |
| 113 | 中国の封筒 #5 横書き 220 × 110 mm |
| 114 | 中国の封筒 #6 横書き 230 × 120 mm |
| 115 | 中国の封筒 #7 横書き 230 × 160 mm |
| 116 | 中国の封筒 #8 横書き 309 × 120 mm |
| 117 | 中国の封筒 #9 横書き 324 × 229 mm |
| 118 | 中国の封筒 #10 横書き 458 × 324 mm |
`Orientation` プロパティはページのレイアウト方向を指定するために使用され、デフォルトのページレイアウト方向は "portrait" で、任意の値は `portrait` および `landscape` です。
`FirstPageNumber` プロパティは、開始ページ番号を指定するために使用され、デフォルトは自動です。
`AdjustTo` プロパティは、ページの拡大縮小率を指定するために使用され、10% から 400% の範囲で、デフォルト値は通常サイズの `100` です。`FitToHeight` または `FitToWidth` を設定すると、このプロパティが上書きされます。
`FitToHeight` プロパティは、ページ幅を調整するためのページの拡大率を指定するために使用され、デフォルト値は `1` です。
`FitToWidth` プロパティは、ページの高さを調整するためのページの拡大率を指定するために使用され、デフォルト値は `1` です。
`BlackAndWhite` プロパティは、モノクロ印刷を指定するために使用され、デフォルトはオフです。
f := excelize.NewFile()
var (
size = 10
orientation = "landscape"
firstPageNumber uint = 2
adjustTo uint = 100
fitToHeight = 2
fitToWidth = 2
blackAndWhite = true
)
if err := f.SetPageLayout("Sheet1", &excelize.PageLayoutOptions{
サイズ: &size,
方向: &orientation,
最初のページ番号: &firstPageNumber,
調整: &adjustTo,
高さに合わせる: &fitToHeight,
幅に合わせる: &fitToWidth,
白黒: &blackAndWhite,
}); err != nil {
fmt.Println(err)
}
ワークシートのページレイアウトを取得する
func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)
指定されたワークシート名とページレイアウトパラメータに基づいて、ワークシートのページレイアウトプロパティを取得します。
ワークシートのページ余白を設定する
func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error
指定されたワークシート名と余白パラメータに基づいて、ワークシートのページ余白を設定します。サポートされる余白オプションは以下の通りです:
オプション | タイプ | 説明 |
---|---|---|
Bottom | *float64 |
下部余白 |
Footer | *float64 |
フッター余白 |
Header | *float64 |
ヘッダー余白 |
Left | *float64 |
左余白 |
Right | *float64 |
右余白 |
Top | *float64 |
上部余白 |
Horizontally | *bool |
ページを水平方向に中央揃え |
Vertically | *bool |
ページを垂直方向に中央揃え |
ワークシートのページ余白を取得する
func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)
指定されたワークシート名と余白パラメータに基づいて、ワークシートのページ余白を取得します。
ワークブックのプロパティを設定する
func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error
SetWorkbookPropsはワークブックのプロパティを設定するために使用されます。サポートされるワークブックのプロパティは以下の通りです:
プロパティ | タイプ | 説明 |
---|---|---|
Date1904 | *bool |
ワークブックが1904年日付システムを使用しているかを示す |
FilterPrivacy | *bool |
フィルタプライバシー。アプリケーションがワークブック内の個人情報をチェックするかを示す |
CodeName | *string |
コード名 |
ワークブックのプロパティを取得する
func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)
GetWorkbookPropsはワークブックのプロパティを取得するために使用されます。
ヘッダーとフッターの設定
func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error
指定されたワークシート名と制御文字に基づいて、ワークシートのヘッダーとフッターを設定します。
ヘッダーとフッターには、以下のフィールドが含まれます:
フィールド | 説明 |
---|---|
AlignWithMargins | ヘッダーとフッターをページの余白に揃える |
DifferentFirst | 最初のページのヘッダーとフッターを設定する |
DifferentOddEven | 奇数ページと偶数ページのヘッダーとフッターを設定する |
ScaleWithDoc | ドキュメントとともにヘッダーとフッターを拡大縮小する |
OddFooter | 奇数ページのフッターの制御文字。「DifferentOddEven」が「false」の場合、最初のページのフッターを設定するために使用されます |
OddHeader | 奇数ページのヘッダーの制御文字。「DifferentOddEven」が「false」の場合、最初のページのヘッダーを設定するために使用されます |
EvenFooter | 偶数ページのフッターの制御文字 |
EvenHeader | 偶数ページのヘッダーの制御文字 |
FirstFooter | 最初のページのフッターの制御文字 |
FirstHeader | 最初のページのヘッダーの制御文字 |
以下のテーブルのフォーマットコードは、6つの文字列型のフィールド「OddHeader」、「OddFooter」、「EvenHeader」、「EvenFooter」、「FirstFooter」、「FirstHeader」に使用できます:
フォーマットコード | 説明 |
---|---|
&& |
文字"&" |
&font-size |
テキストのフォントサイズ。フォントサイズはポイントで表される10進数のフォントサイズ |
&"font name,font type" |
テキストのフォント名文字列と、フォント名、テキストのフォントタイプ文字列と、フォントタイプ |
&"-,Regular" |
通常のテキストフォーマット。太字とイタリックモードをオフにします |
&A |
現在のワークシート名 |
&B または &"-,Bold" |
太字のテキストフォーマット。デフォルトはオフ |
&D |
現在の日付 |
&C |
中央部 |
&E |
テキストの下線を二重にする |
&F |
現在のワークブックファイル名 |
&G |
オブジェクトを背景として指定する(現在サポートされていません) |
&H |
テキストの影 |
&I または &"-,Italic" |
イタリック体のテキスト |
&K |
RGBカラー形式のフォントカラーフォーマット。テーマカラーはTTSNNNで指定され、TTはテーマカラーID、Sは色調または色調の+-、-は色調または色調 |
&L |
左部 |
&N |
総ページ数 |
&O |
アウトラインテキストフォーマット |
&P[[+\|-]n] |
オプションの接尾辞がない場合は、現在のページ番号(10進数) |
&R |
右部 |
&S |
テキストに取り消し線を追加する |
&T |
現在の時刻 |
&U |
テキストに単一の下線を追加する。デフォルトモードはオフ |
&X |
上付き文字フォーマット |
&Y |
下付き文字フォーマット |
&Z |
現在のワークブックファイルパス |
例:
err := f.SetHeaderFooter("Sheet1", &excelize.HeaderFooterOptions{
DifferentFirst: true,
DifferentOddEven: true,
OddHeader: "&R&P",
OddFooter: "&C&F",
EvenHeader: "&L&P",
EvenFooter: "&L&D&R&T",
FirstHeader: `&CCenter &"-,Bold"Bold&"-,Regular"HeaderU+000A&D`,
})
上記の例は以下のフォーマットを含んでいます:
- 最初のページには独自のヘッダーとフッターがあります
- 奇数ページと偶数ページには異なるヘッダーとフッターがあります
- 奇数ページの右側の部分には現在のページ番号があります
- 奇数ページの中央部には現在のワークブックのファイル名があります
- 偶数ページの左側には現在のページ番号があります
- 偶数ページの左側には現在の日付があり、右側には現在の時刻があります
- 最初のページの中央部にはテキスト"Center Bold Header"があり、2行目には日付があります
- 最初のページにはフッターがありません
名前の設定
func (f *File) SetDefinedName(definedName *DefinedName) error
与えられた名前を元に、デフォルトのスコープがワークブックである場合、名前と参照範囲を設定します。例:
err := f.SetDefinedName(&excelize.DefinedName{
Name: "Amount",
RefersTo: "Sheet1!$A$2:$D$5",
Comment: "defined name comment",
Scope: "Sheet2",
})
ワークシートの印刷範囲と印刷タイトルの設定:
if err := f.SetDefinedName(&excelize.DefinedName{
Name: "_xlnm.Print_Area",
RefersTo: "Sheet1!$A$1:$Z$100",
Scope: "Sheet1",
}); err != nil {
fmt.Println(err)
}
if err := f.SetDefinedName(&excelize.DefinedName{
Name: "_xlnm.Print_Titles",
RefersTo: "Sheet1!$A:$A,Sheet1!$1:$1",
Scope: "Sheet1",
}); err != nil {
fmt.Println(err)
}
名前の取得
func (f *File) GetDefinedName() []DefinedName
ワークブックおよびスコープ内のワークシートの名前のリストを取得します。
名前の削除
func (f *File) DeleteDefinedName(definedName *DefinedName) error
与えられた名前と名前のスコープを元に、デフォルトのスコープがワークブックである場合、定義済みの名前を削除します。例:
err := f.DeleteDefinedName(&excelize.DefinedName{
Name: "Amount",
Scope: "Sheet2",
})
ワークブックアプリケーションプロパティの設定
func (f *File) SetAppProps(appProperties *AppProperties) error
ワークブックのアプリケーションプロパティを設定します。設定できるプロパティには以下があります:
プロパティ | 説明 |
---|---|
Application | このドキュメントを作成したアプリケーションの名前 |
ScaleCrop | ドキュメントのサムネイルの表示を指定します。true に設定するとサムネイルを拡大し、false に設定するとトリミングします |
DocSecurity | 数値で表されたドキュメントのセキュリティレベル |
Company | ドキュメントに関連付けられた企業の名前 |
LinksUpToDate | ドキュメント内のハイパーリンクが最新かどうかを設定します。更新されたハイパーリンクには true を設定し、古いハイパーリンクには false を設定します |
HyperlinksChanged | このセクションで指定された新しいハイパーリンクを次回このドキュメントを開いたときに使用するかどうかを指定します |
AppVersion | このドキュメントを生成したアプリケーションのバージョンを指定します。値は XX.YYYY の形式でなければならず、X と Y は数値で、さもないとファイルは標準に準拠していないことになります |
例:
err := f.SetAppProps(&excelize.AppProperties{
Application: "Microsoft Excel",
ScaleCrop: true,
DocSecurity: 3,
Company: "Company Name",
LinksUpToDate: true,
HyperlinksChanged: true,
AppVersion: "16.0000",
})
ワークブックのアプリケーションプロパティの取得
func (f *File) GetAppProps() (*AppProperties, error)
ワークブックのアプリケーションプロパティを取得します。
ドキュメントのプロパティを設定する
func (f *File) SetDocProps(docProperties *DocProperties) error
ワークブックのコアプロパティを設定します。設定できるプロパティは以下の通りです:
プロパティ | 説明 |
---|---|
Category | ドキュメントコンテンツのカテゴリ |
ContentStatus | ドキュメントコンテンツの状態。たとえば、「Draft」「Reviewed」「Final」などの値が含まれます |
Created | ドキュメントが作成された時刻。ISO 8601 UTC形式で表現されます。例: 2019-06-04T22:00:10Z |
Creator | ドキュメントの作成者 |
Description | リソースコンテンツの説明 |
Identifier | 特定のコンテキスト内でのリソースの明確な参照 |
Keywords | ドキュメントのキーワード |
Language | ドキュメントコンテンツの主要言語 |
LastModifiedBy | ドキュメントを最後に変更したユーザー |
Modified | ドキュメントが変更された時刻。ISO 8601 UTC形式で表現されます。例: 2019-06-04T22:00:10Z |
Revision | ドキュメントのリビジョンバージョン |
Subject | ドキュメントのサブジェクト |
Title | ドキュメントのタイトル |
Version | ユーザーまたはアプリケーションが設定するバージョン番号 |
例:
err := f.SetDocProps(&excelize.DocProperties{
Category: "カテゴリ",
ContentStatus: "Draft",
Created: "2019-06-04T22:00:10Z",
Creator: "Go Excelize",
Description: "Go Excelize によって作成されたファイル",
Identifier: "xlsx",
Keywords: "スプレッドシート",
LastModifiedBy: "Go Author",
Modified: "2019-06-04T22:00:10Z",
Revision: "0",
Subject: "テストサブジェクト",
Title: "テストタイトル",
Language: "en-US",
Version: "1.0.0",
})
ドキュメントのプロパティを取得する
func (f *File) GetDocProps() (*DocProperties, error)
ワークブックのコアプロパティを取得します。
ワークブックを保護する
func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error
ワークブックの構造をパスワードで保護し、他のユーザーが非表示のワークシートを表示したり、ワークシートを追加、移動、非表示にしたり、ワークシートの名前を変更することを防ぎます。AlgorithmName
フィールドは、ハッシュアルゴリズムとして、XOR、MD4、MD5、SHA-1、SHA-256、SHA-384、SHA-512 を指定することができます。ハッシュアルゴリズムが指定されていない場合、デフォルトでXORアルゴリズムが使用されます。例えば、以下のようにワークブックの構造をパスワードで保護します:
err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
Password: "password",
LockStructure: true,
})
WorkbookProtectionOptions は、ワークブックを保護するためのオプションを定義します。
type WorkbookProtectionOptions struct {
AlgorithmName string
Password string
LockStructure bool
LockWindows bool
}
ワークブックの保護を解除する
func (f *File) UnprotectWorkbook(password ...string) error
ワークブックの保護を解除し、ワークブックの保護を検証して解除するためのオプションのパスワードを指定します。