Buku Kerja

Options mendefinisikan opsi untuk membaca dan menulis lembar kerja.

type Options struct {
    MaxCalcIterations   uint
    Password            string
    RawCellValue        bool
    UnzipSizeLimit      int64
    UnzipXMLSizeLimit   int64
    ShortDatePattern    string
    LongDatePattern     string
    LongTimePattern     string
    CultureInfo         CultureName
}

MaxCalcIterations digunakan untuk menentukan jumlah maksimum iterasi saat menghitung rumus, dengan nilai default 0.

Password digunakan untuk menentukan kata sandi untuk membuka dan menyimpan buku kerja dalam teks biasa, dengan nilai default kosong.

RawCellValue digunakan untuk menentukan apakah mengambil nilai mentah saat membaca nilai sel, dengan nilai default false (menerapkan format angka).

UnzipSizeLimit digunakan untuk menentukan batas ukuran (dalam byte) untuk dekompresi saat membuka dokumen lembar kerja, yang harus lebih besar dari atau sama dengan UnzipXMLSizeLimit, dengan batas default 16GB.

UnzipXMLSizeLimit digunakan untuk menentukan batas memori (dalam byte) saat mendekompresi setiap lembar kerja dan tabel string bersama, dan saat ukurannya melebihi nilai ini, file XML lembar kerja akan didekompresi ke direktori sementara sistem. Nilai ini harus kurang dari atau sama dengan UnzipSizeLimit, dengan batas default 16MB.

ShortDatePattern digunakan untuk menentukan kode format numerik tanggal pendek.

LongDatePattern digunakan untuk menentukan kode format numerik tanggal panjang.

LongTimePattern digunakan untuk menentukan kode format numerik waktu panjang.

CultureInfo digunakan untuk menentukan format regional, yang akan digunakan saat membaca format numerik yang dipengaruhi oleh pengaturan tanggal dan waktu spesifik wilayah.

Buat

func NewFile(opts ...Options) *File

Gunakan NewFile untuk membuat buku kerja Excel baru, yang secara default akan berisi lembar kerja bernama Sheet1.

Buka

func OpenFile(filename string, opts ...Options) (*File, error)

Gunakan OpenFile untuk membuka dokumen Excel yang sudah ada. Misalnya, buka dokumen lembar kerja yang dilindungi kata sandi:

f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "password"})
if err != nil {
    return
}

Gunakan Close() untuk menutup buku kerja yang telah dibuka.

Buka Aliran Data

func OpenReader(r io.Reader, opts ...Options) (*File, error)

OpenReader membaca data dari io.Reader.

Pada contoh berikut, kita membuat server HTTP sederhana untuk menerima dokumen lembar kerja yang diunggah, menambahkan lembar kerja baru ke dokumen yang diterima, dan mengembalikan respons unduhan:

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)
}

Pengujiannya menggunakan cURL:

curl --location --request GET 'http://127.0.0.1:8090/process' \
--form 'file=@/tmp/template.xltx' -O -J

Simpan

func (f *File) Save(opts ...Options) error

Gunakan Save untuk menyimpan editan ke dokumen Excel.

Simpan Sebagai

func (f *File) SaveAs(name string, opts ...Options) error

Gunakan SaveAs untuk menyimpan dokumen Excel sebagai file yang ditentukan.

Tutup Buku Kerja

func (f *File) Close() error

Tutup buku kerja dan bersihkan cache disk sistem yang mungkin telah dibuat saat membuka dokumen.

Lembar Kerja Baru

func (f *File) NewSheet(sheet string) (int, error)

Buat lembar kerja baru berdasarkan nama lembar kerja yang diberikan dan kembalikan indeks lembar kerja dalam buku kerja. Harap dicatat bahwa saat membuat buku kerja baru, itu akan berisi lembar kerja default bernama Sheet1.

Hapus Lembar Kerja

func (f *File) DeleteSheet(sheet string) error

Hapus lembar kerja yang ditentukan berdasarkan nama lembar kerja yang diberikan. Gunakan metode ini dengan hati-hati, karena akan memengaruhi rumus, referensi, grafik, dan elemen lain yang terkait dengan lembar kerja yang dihapus. Jika komponen lain merujuk nilai pada lembar kerja yang dihapus, akan muncul kesalahan, dan bahkan dapat menyebabkan buku kerja gagal dibuka. Memanggil metode ini tidak valid ketika buku kerja hanya berisi satu lembar kerja.

Salin Lembar Kerja

func (f *File) CopySheet(from, to int) error

Salin lembar kerja berdasarkan lembar kerja sumber yang diberikan dan indeks lembar kerja tujuan. Pengembang perlu mengonfirmasi apakah indeks lembar kerja tujuan sudah ada. Saat ini, hanya penyalinan lembar kerja yang berisi nilai sel dan rumus yang didukung, sementara penyalinan lembar kerja yang berisi tabel, gambar, grafik, dan tabel pivot tidak didukung.

// Lembar kerja bernama Sheet1 sudah ada ...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Gabung Lembar Kerja

func (f *File) GroupSheets(sheets []string) error

Kelompokkan lembar kerja berdasarkan nama lembar kerja yang diberikan, dan lembar kerja default harus disertakan dalam lembar kerja yang diberikan.

Buka Kelompok Lembar Kerja

func (f *File) UngroupSheets() error

Buka kelompok lembar kerja.

Atur Latar Belakang Lembar Kerja

func (f *File) SetSheetBackground(sheet, picture string) error

Atur gambar latar tile untuk lembar kerja yang ditentukan berdasarkan nama lembar kerja dan jalur file gambar yang diberikan. Format file gambar yang didukung mencakup: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF, dan WMZ.

func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error

Atur gambar latar tile untuk lembar kerja yang ditentukan berdasarkan nama lembar kerja, ekstensi format gambar, dan data format gambar. Format file gambar yang didukung mencakup: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF, dan WMZ.

Atur Lembar Kerja Default

func (f *File) SetActiveSheet(index int)

Atur lembar kerja default berdasarkan nilai indeks yang diberikan, di mana nilai harus lebih besar dari atau sama dengan 0 dan kurang dari total kumulatif jumlah lembar kerja dalam buku kerja.

Dapatkan Indeks Lembar Kerja Default

func (f *File) GetActiveSheetIndex() int

Dapatkan indeks lembar kerja default, mengembalikan 0 jika tidak ada lembar kerja default yang ditemukan.

Atur Keterlihatan Lembar Kerja

func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error

Set keterlihatan lembar kerja berdasarkan nama lembar kerja yang diberikan dan parameter keterlihatan. Sebuah buku kerja harus berisi setidaknya satu lembar kerja yang terlihat. Jika lembar kerja yang diberikan adalah lembar kerja default, pengaturan keterlihatan tidak valid. Parameter opsional ketiga veryHidden hanya valid ketika nilai parameter visible adalah false.

Sebagai contoh, untuk menyembunyikan lembar kerja bernama Sheet1:

err := f.SetSheetVisible("Sheet1", false)

Dapatkan Keterlihatan Lembar Kerja

func (f *File) GetSheetVisible(sheet string) (bool, error)

Dapatkan pengaturan keterlihatan lembar kerja berdasarkan nama lembar kerja yang diberikan. Sebagai contoh, untuk mendapatkan pengaturan keterlihatan lembar kerja bernama Sheet1:

visible, err := f.GetSheetVisible("Sheet1")

Atur Properti Lembaran

func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error

Atur properti dari lembar kerja yang ditentukan berdasarkan nama lembar kerja dan pilihan properti yang diberikan. Pilihan properti lembar kerja yang didukung adalah sebagai berikut:

Properti Tipe Deskripsi
CodeName *string Nama kode
EnableFormatConditionsCalculation *bool Tentukan apakah pemformatan kondisional dihitung secara otomatis, dengan nilai default true
Diterbitkan *bool Tentukan apakah lembar kerja diterbitkan, dengan nilai default true
AutoPageBreaks *bool Tentukan apakah lembar kerja memecah halaman secara otomatis, dengan nilai default true
FitToPage *bool Tentukan apakah mencetak sesuai halaman diaktifkan, dengan nilai default false
TabColorIndexed *int Digunakan untuk nilai warna indeks yang kompatibel ke belakang
TabColorRGB *string Nilai warna ARGB standar
TabColorTheme *int Indeks warna tema mulai dari 0
TabColorTint *float64 Nilai tint yang diterapkan pada warna, dengan nilai default 0.0
OutlineSummaryBelow *bool Tentukan arah ringkasan, apakah di bawah data detail, dengan nilai default true
OutlineSummaryRight *bool Tentukan arah ringkasan, apakah ke kanan dari data detail, dengan nilai default true
BaseColWidth *uint8 Lebar kolom dasar yang diwakili dalam jumlah karakter, dengan nilai default 8
DefaultColWidth *float64 Lebar kolom default termasuk margin dan garis grid
DefaultRowHeight *float64 Tinggi baris yang diwakili dalam poin
CustomHeight *bool Tentukan apakah tinggi baris kustom diterapkan, dengan nilai default false
ZeroHeight *bool Tentukan apakah baris disembunyikan secara default, dengan nilai default false
ThickTop *bool Tentukan apakah baris memiliki batas atas tebal secara default, dengan nilai default false
ThickBottom *bool Tentukan apakah baris memiliki batas bawah tebal secara default, dengan nilai default false

Sebagai contoh, untuk menyembunyikan baris default di lembar kerja bernama Sheet1:

Atur properti lembaran

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")

Dapatkan Properti Lembaran

func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)

Dapatkan properti dari lembar kerja yang ditentukan berdasarkan nama lembar kerja yang diberikan.

Atur Properti Tampilan Lembar

func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error

Atur properti tampilan lembar berdasarkan nama lembar, indeks tampilan, dan opsi tampilan yang diberikan. viewIndex dapat berupa angka negatif, dalam hal ini perhitungan akan dilakukan mundur (-1 mewakili tampilan terakhir). Opsi yang didukung untuk mengatur properti tampilan lembar adalah sebagai berikut:

Properti Tipe Deskripsi
DefaultGridColor *bool Menentukan apakah akan menggunakan warna garis kisi default, nilai default adalah true
RightToLeft *bool Menentukan apakah tampilan dari kanan ke kiri, nilai default adalah false
ShowFormulas *bool Menentukan apakah lembar kerja menampilkan rumus, nilai default adalah false
ShowGridLines *bool Menentukan apakah lembar kerja menampilkan garis kisi, nilai default adalah true
ShowRowColHeaders *bool Menentukan apakah lembar kerja menampilkan header baris dan kolom, nilai default adalah true
ShowRuler *bool Menentukan apakah akan menampilkan penggaris dalam tampilan tata letak halaman, nilai default adalah true
ShowZeros *bool Menentukan apakah akan menampilkan nilai nol dalam sel, nilai default adalah true, jika tidak, nilainya akan ditampilkan sebagai kosong
TopLeftCell *string Menentukan koordinat sel atas-kiri yang terlihat
View *string Menunjukkan jenis tampilan lembar kerja, dengan nilai enum normal, pageBreakPreview, dan pageLayout
ZoomScale *float64 Persentase skala zoom jendela tampilan saat ini, terbatas pada rentang 10 hingga 400, nilai default adalah 100

Dapatkan Properti Tampilan Lembar

func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)

Dapatkan properti tampilan lembar berdasarkan nama lembar dan indeks tampilan yang diberikan. viewIndex dapat berupa angka negatif, dalam hal ini perhitungan akan dilakukan mundur (-1 mewakili tampilan terakhir).

Atur Tata Letak Halaman Lembar Kerja

func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error

Atur atribut tata letak halaman lembar kerja berdasarkan nama lembar kerja yang diberikan dan parameter tata letak halaman. Saat ini atribut tata letak halaman yang didukung termasuk:

Atribut Size digunakan untuk menentukan ukuran kertas halaman, dengan ukuran tata letak halaman default adalah "Letter 8½ × 11 inci". Tabel berikut menunjukkan hubungan antara ukuran tata letak halaman dan parameter indeks Size di Excelize:

Indeks Ukuran Kertas
1 Letter 8½ × 11 inci
2 Letter Kecil 8½ × 11 inci
3 Tabloid 11 × 17 inci
4 Ledger 17 × 11 inci
... ...
40 Lipatan Kipas Standar Jerman 8.5 × 12 inci
| 41 | Kertas Hukum Lipatan Standar Jerman 8.5 × 13 inci |
| 42 | ISO B4 250 × 353 mm |
| 43 | Kartu Pos Jepang 100 × 148 mm |
| 44 | Kertas Standar 9 × 11 inci |
| 45 | Kertas Standar 10 × 11 inci |
| 46 | Kertas Standar 15 × 11 inci |
| 47 | Surat Undangan 220 × 220 mm |
| 50 | Kertas Kop Surat Diperbesar 9.275 × 12 inci |
| 51 | Kertas Hukum Ekstra Besar 9.275 × 15 inci |
| 52 | Kertas Tabloid Ekstra 11.69 × 18 inci |
| 53 | A4 Ekstra Besar 236 × 322 mm |
| 54 | Kop Surat Bentuk Lanskap 8.275 × 11 inci |
| 55 | A4 Bentuk Lanskap 210 × 297 mm |
| 56 | Kop Surat Ekstra Besar Bentuk Lanskap 9.275 × 12 inci |
| 57 | Kertas SuperA/SuperA/A4 227 × 356 mm |
| 58 | Kertas SuperB/SuperB/A3 305 × 487 mm |
| 59 | Kertas Kop Surat Diperbesar 8.5 × 12.69 inci |
| 60 | A4 Diperbesar 210 × 330 mm |
| 61 | Bentuk Lanskap A5 148 × 210 mm |
| 62 | JIS B5 Bentuk Lanskap 182 × 257 mm |
| 63 | A3 Ekstra Besar 322 × 445 mm |
| 64 | A5 Ekstra Besar 174 × 235 mm |
| 65 | ISO B5 Ekstra Besar 201 × 276 mm |
| 66 | A2 420 × 594 mm |
| 67 | A3 Bentuk Lanskap 297 × 420 mm |
| 68 | A3 Ekstra Besar Bentuk Lanskap 322 × 445 mm |
| 69 | Kartu Pos Jepang Ganda 200 × 148 mm |
| 70 | A6 105 × 148 mm |
| 71 | Amplop Jepang Kaku #2 |
| 72 | Amplop Jepang Kaku #3 |
| 73 | Amplop Jepang Chou #3 |
| 74 | Amplop Jepang Chou #4 |
| 75 | Kop Surat Bentuk Lanskap 11 × 8½ inci |
| 76 | A3 Bentuk Lanskap 420 × 297 mm |
| 77 | A4 Bentuk Lanskap 297 × 210 mm |
| 78 | A5 Bentuk Lanskap 210 × 148 mm |
| 79 | B4 (JIS) Bentuk Lanskap 364 × 257 mm |
| 80 | B5 (JIS) Bentuk Lanskap 257 × 182 mm |
| 81 | Kartu Pos Jepang Bentuk Lanskap 148 × 100 mm |
| 82 | Kartu Pos Jepang Ganda Bentuk Lanskap 148 × 200 mm |
| 83 | A6 Bentuk Lanskap 148 × 105 mm |
| 84 | Amplop Jepang Kaku #2 Bentuk Lanskap |
| 85 | Amplop Jepang Kaku #3 Bentuk Lanskap |
| 86 | Amplop Jepang Chou #3 Bentuk Lanskap |
| 87 | Japanese Envelope Chou #4 Landscape |
| 88 | B6 (JIS) 128 × 182 mm |
| 89 | B6 (JIS) Landscape 182 × 128 mm |
| 90 | 12 × 11 inci |
| 91 | Japanese Envelope You #4 |
| 92 | Japanese Envelope You #4 Landscape |
| 93 | Cina 16K 146 × 215 mm |
| 94 | Cina 32K 97 × 151 mm |
| 95 | Cina Besar 32K 97 × 151 mm |
| 96 | Cina Amplop #1 102 × 165 mm |
| 97 | Cina Amplop #2 102 × 176 mm |
| 98 | Cina Amplop #3 125 × 176 mm |
| 99 | Cina Amplop #4 110 × 208 mm |
| 100 | Cina Amplop #5 110 × 220 mm |
| 101 | Cina Amplop #6 120 × 230 mm |
| 102 | Cina Amplop #7 160 × 230 mm |
| 103 | Cina Amplop #8 120 × 309 mm |
| 104 | Cina Amplop #9 229 × 324 mm |
| 105 | Cina Amplop #10 324 × 458 mm |
| 106 | Cina 16K Landscape |
| 107 | Cina 32K Landscape |
| 108 | Cina Besar 32K Landscape |
| 109 | Cina Amplop #1 Landscape 165 × 102 mm |
| 110 | Cina Amplop #2 Landscape 176 × 102 mm |
| 111 | Cina Amplop #3 Landscape 176 × 125 mm |
| 112 | Cina Amplop #4 Landscape 208 × 110 mm |
| 113 | Cina Amplop #5 Landscape 220 × 110 mm |
| 114 | Cina Amplop #6 Landscape 230 × 120 mm |
| 115 | Cina Amplop #7 Landscape 230 × 160 mm |
| 116 | Cina Amplop #8 Landscape 309 × 120 mm |
| 117 | Cina Amplop #9 Landscape 324 × 229 mm |
| 118 | Cina Amplop #10 Landscape 458 × 324 mm |

Properti `Orientation` digunakan untuk menentukan arah tata letak halaman, dengan arah tata letak halaman default adalah "potret", dan nilai opsionalnya adalah `potret` dan `landscape`.

Properti `FirstPageNumber` digunakan untuk menentukan nomor halaman awal, dengan nilai default adalah otomatis.

Properti `AdjustTo` digunakan untuk menentukan rasio penskalaan halaman, dengan rentang 10 hingga 400, yaitu, penskalaan dari 10% hingga 400%, dan nilai defaultnya adalah `100` untuk ukuran normal. Pengaturan `FitToHeight` atau `FitToWidth` akan menggantikan properti ini.

Properti `FitToHeight` digunakan untuk menentukan penskalaan halaman untuk menyesuaikan lebar halaman, dengan nilai default `1`.

Properti `FitToWidth` digunakan untuk menentukan penskalaan halaman untuk menyesuaikan tinggi halaman, dengan nilai default `1`.

Properti `BlackAndWhite` digunakan untuk menentukan pencetakan monokrom, dengan nilai default adalah nonaktif.
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:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Dapatkan Tata Letak Halaman Lembar Kerja

func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)

Dapatkan properti tata letak halaman lembar kerja berdasarkan nama lembar kerja yang diberikan dan parameter tata letak halaman.

Tetapkan Margin Halaman Lembar Kerja

func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error

Atur margin halaman lembar kerja berdasarkan nama lembar kerja yang diberikan dan parameter margin. Opsi margin yang didukung adalah:

Opsi Tipe Deskripsi
Bawah *float64 Margin bawah
Footer *float64 Margin footer
Header *float64 Margin header
Kiri *float64 Margin kiri
Kanan *float64 Margin kanan
Atas *float64 Margin atas
Secara Horizontal *bool Pusat halaman secara horizontal
Secara Vertikal *bool Pusat halaman secara vertikal

Dapatkan Margin Halaman Lembar Kerja

func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)

Dapatkan margin halaman lembar kerja berdasarkan nama lembar kerja yang diberikan dan parameter margin.

Tetapkan Properti Buku Kerja

func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error

SetWorkbookProps digunakan untuk mengatur properti buku kerja. Properti buku kerja yang didukung adalah:

Properti Tipe Deskripsi
Date1904 *bool Menunjukkan apakah buku kerja menggunakan sistem tanggal 1904
FilterPrivacy *bool Privasi filter, menunjukkan apakah aplikasi memeriksa informasi pribadi dalam buku kerja
CodeName *string Nama kode

Dapatkan Properti Buku Kerja

func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)

GetWorkbookProps digunakan untuk mendapatkan properti buku kerja.

Atur Header dan Footer

func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error

Mengatur header dan footer dari lembar kerja berdasarkan nama lembar kerja yang diberikan dan karakter kontrol yang ditentukan.

Header dan footer termasuk bidang-bidang berikut:

Bidang Deskripsi
AlignWithMargins Menetapkan perataan header dan footer dengan margin halaman
DifferentFirst Menetapkan header dan footer untuk halaman pertama
DifferentOddEven Menetapkan header dan footer untuk halaman ganjil dan genap
ScaleWithDoc Menetapkan header dan footer agar disesuaikan dengan dokumen
OddFooter Karakter kontrol untuk footer halaman ganjil, digunakan untuk menetapkan footer halaman pertama ketika nilai DifferentOddEven adalah false
OddHeader Karakter kontrol untuk header halaman ganjil, digunakan untuk menetapkan header halaman pertama ketika nilai DifferentOddEven adalah false
EvenFooter Karakter kontrol untuk footer halaman genap
EvenHeader Karakter kontrol untuk header halaman genap
FirstFooter Karakter kontrol untuk footer halaman pertama
FirstHeader Karakter kontrol untuk header halaman pertama

Kode format dalam tabel di bawah ini dapat digunakan untuk 6 bidang tipe string: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

Kode Format Deskripsi
&& Karakter "&"
&font-size Ukuran font teks, di mana ukuran font adalah ukuran font desimal dalam titik
&"nama font,jenis font" String nama font teks, nama font, dan string jenis font teks, jenis font
&"-,Regular" Format teks reguler. Matikan mode tebal dan miring
&A Nama lembar kerja saat ini
&B atau &"-,Bold" Format teks tebal, nonaktif atau aktif, default nonaktif
&D Tanggal saat ini
&C Bagian tengah
&E Garis bawah ganda untuk teks
&F Nama file buku kerja saat ini
&G Tentukan objek sebagai latar belakang (saat ini tidak didukung)
&H Bayangan teks
&I atau &"-,Italic" Teks miring
&K Format warna font dalam format warna RGB dalam RRGGBB. Warna tema ditentukan sebagai TTSNNN, di mana TT adalah id warna tema, S adalah corak atau bayangan dari "+", "-", adalah nilai dari corak atau bayangan
&L Bagian kiri
&N Jumlah total halaman
&O Format teks kontur
&P[[+\|-]n] Jika tidak ada akhiran opsional, nomor halaman saat ini (desimal)
&R Bagian kanan
&S Garis tengah teks
&T Waktu saat ini
&U Tambahkan garis bawah tunggal ke teks. Mode default mati
&X Format atas script
&Y Format subskrip
&Z Path file buku kerja saat ini

Contohnya:

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"Header Tebal&"-,Regular"U+000A&D`,
})

Contoh di atas berisi format berikut:

  • Halaman pertama memiliki header dan footer sendiri
  • Halaman ganjil dan genap memiliki header dan footer yang berbeda
  • Bagian kanan dari header halaman ganjil adalah nomor halaman saat ini
  • Bagian tengah dari footer halaman ganjil adalah nama file buku kerja saat ini
  • Bagian kiri adalah nomor halaman saat ini pada header halaman genap
  • Bagian kiri adalah tanggal saat ini, dan bagian kanan dari footer halaman genap adalah waktu saat ini
  • Teks pada baris pertama di bagian tengah halaman pertama adalah "Tengah Bold Header", dan baris kedua adalah tanggal
  • Tidak ada footer pada halaman pertama

Atur Nama

func (f *File) SetDefinedName(definedName *DefinedName) error

Atur nama dan rentang referensi berdasarkan nama yang diberikan, dengan cakupan default sebagai buku kerja. Contoh:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    RefersTo: "Sheet1!$A$2:$D$5",
    Comment:  "komentar nama yang ditetapkan",
    Scope:    "Sheet2",
})

Mengatur area cetak dan judul cetak dari lembar kerja:

Mengatur area cetak dan judul cetak dari lembar kerja

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)
}

Dapatkan Nama

func (f *File) GetDefinedName() []DefinedName

Dapatkan daftar nama buku kerja dan lembar kerja dalam cakupan.

Hapus Nama

func (f *File) DeleteDefinedName(definedName *DefinedName) error

Hapus nama yang ditetapkan berdasarkan nama yang diberikan dan cakupan nama, dengan cakupan default sebagai buku kerja. Contoh:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    Scope:    "Sheet2",
})

Atur Properti Aplikasi Buku Kerja

func (f *File) SetAppProps(appProperties *AppProperties) error

Atur properti aplikasi buku kerja. Properti yang dapat diatur meliputi:

Properti Deskripsi
Aplikasi Nama aplikasi yang membuat dokumen ini
ScaleCrop Menentukan tampilan cuplikan dokumen. Atur ke true untuk menyusun ulang cuplikan dokumen, dan false untuk memangkas cuplikan dokumen
KeamananDokumen Tingkat keamanan dokumen yang direpresentasikan sebagai nilai numerik
Perusahaan Nama perusahaan yang terkait dengan dokumen
TautanTertanggal Menetapkan apakah tautan dalam dokumen terkini. Atur ke true untuk tautan terkini, dan false untuk tautan usang
TautanBerubah Menentukan apakah tautan baru yang ditentukan dalam bagian ini harus digunakan untuk memperbarui hubungan tautan saat dokumen dibuka selanjutnya
VersiAplikasi Menentukan versi aplikasi yang menghasilkan dokumen ini. Nilai harus dalam format XX.YYYY, di mana X dan Y adalah nilai numerik, jika tidak, file tidak akan sesuai dengan standar

Contoh:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Nama Perusahaan",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

Dapatkan Properti Aplikasi Buku Kerja

func (f *File) GetAppProps() (*AppProperties, error)

Dapatkan properti aplikasi buku kerja.

Atur properti dokumen

func (f *File) SetDocProps(docProperties *DocProperties) error

Atur properti inti dari buku kerja. Properti yang dapat diatur meliputi:

Properti Deskripsi
Kategori Kategori konten dokumen
StatusKonten Status konten dokumen. Misalnya, nilai-nilai mungkin termasuk "Draft", "Ditinjau", dan "Final"
Dibuat Waktu ketika dokumen dibuat, direpresentasikan dalam format UTC ISO 8601, misalnya 2019-06-04T22:00:10Z
Pembuat Pembuat dokumen
Deskripsi Deskripsi konten sumber daya
Pengenal Referensi yang jelas ke sumber daya dalam konteks yang diberikan
KataKunci Kata kunci dokumen
Bahasa Bahasa utama dari konten dokumen
TerakhirDiubahOleh Pengguna yang terakhir memodifikasi dokumen
Dimodifikasi Waktu ketika dokumen dimodifikasi, direpresentasikan dalam format UTC ISO 8601, misalnya 2019-06-04T22:00:10Z
Revisi Versi revisi dokumen
Subjek Subjek dokumen
Judul Judul dokumen
Versi Nomor versi, yang diatur oleh pengguna atau aplikasi

Sebagai contoh:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "kategori",
    ContentStatus:  "Draft",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "Berkas ini dibuat oleh Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Spreadsheet",
    LastModifiedBy: "Pembuat Go",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Subjek Uji Coba",
    Title:          "Judul Uji Coba",
    Language:       "id-ID",
    Version:        "1.0.0",
})

Dapatkan properti dokumen

func (f *File) GetDocProps() (*DocProperties, error)

Dapatkan properti inti dari buku kerja.

Lindungi buku kerja

func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error

Lindungi struktur buku kerja dengan kata sandi untuk mencegah pengguna lain melihat lembar kerja tersembunyi, menambah, memindahkan, atau menyembunyikan lembar kerja, dan mengubah nama lembar kerja. Bidang NamaAlgoritma mendukung menentukan algoritma hash XOR, MD4, MD5, SHA-1, SHA-256, SHA-384, atau SHA-512. Jika tidak ada algoritma hash yang ditentukan, algoritma XOR digunakan secara default. Misalnya, lindungi struktur buku kerja dengan kata sandi:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "kata sandi",
    LockStructure: true,
})

WorkbookProtectionOptions mendefinisikan opsi untuk melindungi buku kerja.

type WorkbookProtectionOptions struct {
    NamaAlgoritma string
    Sandi      string
    KunciStruktur bool
    KunciJendela   bool
}

Hilangkan perlindungan buku kerja

func (f *File) UnprotectWorkbook(password ...string) error

Hapus perlindungan buku kerja, dengan parameter sandi opsional untuk memverifikasi dan menghapus perlindungan buku kerja.