Sel
RichTextRun mendefinisikan properti teks kaya.
jenis RichTextRun struct {
Font *Font
Teks string
}
HyperlinkOpts digunakan untuk menentukan properti hiperlink opsional, seperti teks tampilan dan petunjuk layar.
jenis HyperlinkOpts struct {
Tampilan *string
Tooltip *string
}
FormulaOpts digunakan untuk menentukan jenis formula khusus dalam fungsi SetCellFormula.
jenis FormulaOpts struct {
Jenis *string // jenis formula
Ref *string // referensi formula bersama
}
Tentukan nilai dari sel
fungsi (f *File) SetCellValue(sheet, sel string, nilai antarmuka{}) error
Tentukan nilai dari sel berdasarkan nama lembaran dan koordinat sel yang diberikan. Fungsi ini aman untuk gorutin. Koordinat yang ditentukan tidak boleh berada di baris pertama tabel, dan karakter jamak harus digunakan untuk pengaturan teks.
| Jenis data yang didukung |
|---|
| int |
| int8 |
| int16 |
| int32 |
| int64 |
| uint |
| uint8 |
| uint16 |
| uint32 |
| uint64 |
| float32 |
| float64 |
| string |
| []byte |
| time.Duration |
| time.Time |
| bool |
| nihil |
Harap dicatat bahwa fungsi ini menetapkan nilai sel dari tipe time.Time dengan format angka m/d/yy h:mm secara default, dan Anda dapat mengubah pengaturan ini menggunakan SetCellStyle. Jika Anda perlu menetapkan tanggal Excel khusus yang tidak dapat diwakili oleh tipe time.Time dalam bahasa Go, seperti 0 Januari 1900, atau 29 Februari 1900, tetapkan nilai sel menjadi 0 atau 60, dan kemudian tetapkan dengan gaya yang memiliki format angka tanggal.
Tentukan nilai boolean
fungsi (f *File) SetCellBool(sheet, sel string, nilai bool) error
Tetapkan nilai sel boolean berdasarkan nama lembaran dan koordinat sel yang diberikan.
Tentukan nilai string default
fungsi (f *File) SetCellDefault(sheet, sel, nilai string) error
Tetapkan nilai sel string berdasarkan nama lembaran dan koordinat sel yang diberikan, dan karakter tidak akan tunduk pada penyaringan karakter khusus.
Tetapkan integer
fungsi (f *File) SetCellInt(sheet, sel string, nilai int) error
Tetapkan nilai sel integer berdasarkan nama lembaran dan koordinat sel yang diberikan.
Tetapkan float
fungsi (f *File) SetCellFloat(sheet, sel string, nilai float64, presisi, bitSize int) error
Tetapkan nilai sel float berdasarkan nama lembaran, koordinat sel, nilai float, presisi bagian pecahan dari float, dan tipe float.
Tentukan nilai string
fungsi (f *File) SetCellStr(sheet, sel, nilai string) error
Tetapkan nilai sel string berdasarkan nama lembaran dan koordinat sel yang diberikan, karakter akan tunduk pada penyaringan karakter khusus, dan panjang akumulasi string tidak boleh melebihi 32767, karakter yang berlebih akan diabaikan.
Atur Gaya Sel
func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error
Atur nilai dari sebuah sel berdasarkan nama lembar, koordinat sel, dan indeks gaya yang diberikan. Fungsi ini aman untuk digunakan oleh beberapa thread sekaligus. Indeks gaya dapat diperoleh melalui fungsi NewStyle. Perhatikan bahwa diagonalDown dan diagonalUp dalam area koordinat yang sama perlu mempertahankan warna yang konsisten. SetCellStyle akan mengganti gaya yang ada pada sel tanpa menumpuk atau menggabungkan gaya.
- Contoh 1: Atur gaya batas untuk sel
D7pada lembar bernamaSheet1:
style, err := f.NewStyle(&excelize.Style{
Border: []excelize.Border{
{Type: "left", Color: "0000FF", Style: 3},
{Type: "top", Color: "00FF00", Style: 4},
{Type: "bottom", Color: "FFFF00", Style: 5},
{Type: "right", Color: "FF0000", Style: 6},
{Type: "diagonalDown", Color: "A020F0", Style: 8},
{Type: "diagonalUp", Color: "A020F0", Style: 8},
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

Keempat batas sel D7 diatur dengan gaya dan warna yang berbeda, yang terkait dengan parameter yang dilewatkan ke fungsi NewStyle. Untuk mengatur gaya yang berbeda, silakan lihat dokumentasi dalam bab ini.
- Contoh 2: Atur gaya gradien untuk sel
D7pada lembar bernamaSheet1:
style, err := f.NewStyle(&excelize.Style{
Fill: excelize.Fill{Type: "gradien", Color: []string{"FFFFFF", "E0EBF5"}, Shading: 1},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

Sel D7 diisi dengan warna gradien, yang terkait dengan parameter yang dilewatkan ke fungsi NewStyle. Untuk mengatur gaya yang berbeda, silakan lihat dokumentasi dalam bab ini.
- Contoh 3: Atur pengisian warna solid untuk sel
D7pada lembar bernamaSheet1:
style, err := f.NewStyle(&excelize.Style{
Fill: excelize.Fill{Type: "pattern", Color: []string{"E0EBF5"}, Pattern: 1},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

Sel D7 diisi dengan warna solid.
- Contoh 4: Atur jarak karakter dan sudut rotasi untuk sel
D7pada lembar bernamaSheet1:
f.SetCellValue("Sheet1", "D7", "Gaya")
style, err := f.NewStyle(&excelize.Style{
Alignment: &excelize.Alignment{
Horizontal: "center",
Indent: 1,
JustifyLastLine: true,
ReadingOrder: 0,
RelativeIndent: 1,
ShrinkToFit: true,
TextRotation: 45,
Vertical: "",
WrapText: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

- Contoh 5: Tanggal dan waktu dalam Excel direpresentasikan oleh angka real, misalnya,
2017/7/4 12:00:00 PMdapat direpresentasikan oleh angka42920.5. Tetapkan format waktu untuk selD7dalam lembar kerja yang bernamaSheet1:
f.SetCellValue("Sheet1", "D7", 42920.5)
f.SetColWidth("Sheet1", "D", "D", 13)
style, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

Sel D7 diatur dengan format waktu. Harap dicatat bahwa ketika lebar sel terlalu sempit untuk menampilkan konten yang lengkap, itu akan ditampilkan sebagai ####. Anda dapat menyesuaikan lebar kolom dengan cara menyeret atau dengan memanggil fungsi SetColWidth untuk menetapkan lebar kolom ke ukuran yang sesuai untuk tampilan normal.
- Contoh 6: Tetapkan jenis huruf, ukuran huruf, warna, dan gaya miring untuk sel
D7dalam lembar kerja yang bernamaSheet1:
f.SetCellValue("Sheet1", "D7", "Excel")
style, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{
Bold: true,
Italic: true,
Family: "Times New Roman",
Size: 36,
Color: "777777",
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

- Contoh 7: Kunci dan sembunyikan sel
D7dalam lembar kerja yang bernamaSheet1:
style, err := f.NewStyle(&excelize.Style{
Protection: &excelize.Protection{
Hidden: true,
Locked: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
Untuk mengunci atau menyembunyikan sel, lindungi lembar kerja. Pada tab "Ulasan", klik "Lindungi Lembar".
```go
func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error
Atur hyperlink untuk sel berdasarkan lembar kerja, koordinat sel, sumber tautan, dan jenis sumber daya. Jenis sumber daya mencakup dua jenis: alamat tautan eksternal External dan tautan posisi internal dalam buku kerja Location. Jumlah maksimum hyperlink dalam setiap lembar kerja dibatasi hingga 65530. Metode ini hanya mengatur hyperlink untuk sel tanpa memengaruhi nilai sel. Jika Anda perlu mengatur nilai sel, harap atur secara terpisah melalui fungsi seperti SetCellStyle atau SetSheetRow.
- Contoh 1: Tambahkan tautan eksternal ke sel
A3dalam lembar kerja yang bernamaSheet1:
display, tooltip := "https://github.com/xuri/excelize", "Excelize di GitHub"
if err := f.SetCellHyperLink("Sheet1", "A3",
"https://github.com/xuri/excelize", "External", excelize.HyperlinkOpts{
Display: &display,
Tooltip: &tooltip,
}); err != nil {
fmt.Println(err)
}
// Atur jenis huruf dan gaya garis bawah untuk sel
style, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{Color: "1265BE", Underline: "single"},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "A3", "A3", style)
- Contoh 2: Tambahkan tautan lokasi ke sel
A3dalam lembar kerja yang bernamaSheet1:
err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error
Tetapkan format teks yang kaya untuk sel yang ditentukan berdasarkan lembar kerja, koordinat sel, dan format teks yang kaya yang diberikan.
Sebagai contoh, tetapkan format teks kaya untuk sel `A1` di lembar kerja yang bernama `Sheet1`:

```go
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
if err := f.SetRowHeight("Sheet1", 1, 35); err != nil {
fmt.Println(err)
return
}
if err := f.SetColWidth("Sheet1", "A", "A", 44); err != nil {
fmt.Println(err)
return
}
if err := f.SetCellRichText("Sheet1", "A1", []excelize.RichTextRun{
{
Text: "bold",
Font: &excelize.Font{
Bold: true,
Color: "2354E8",
Family: "Times New Roman",
},
},
// ... (Berjalan teks kaya lainnya)
}); err != nil {
fmt.Println(err)
return
}
// ... (Pengaturan gaya sel lainnya dan penyimpanan)
}
func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)
Dapatkan format teks kaya dari sel yang ditentukan berdasarkan lembar kerja dan koordinat sel yang diberikan.
func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)
Dapatkan nilai dari sel yang ditentukan berdasarkan lembar kerja dan koordinat sel, dan nilai balikan akan dikonversi ke tipe string. Jika format sel dapat diterapkan pada nilai sel, nilai yang diterapkan akan dikembalikan; jika tidak, nilai aslinya akan dikembalikan. Nilai dari semua sel dalam area yang digabungkan adalah sama. Fungsi ini aman untuk konkurensi.
func (f *File) GetCellType(sheet, cell string) (CellType, error)
Dapatkan tipe data dari sel yang ditentukan berdasarkan lembar kerja dan koordinat sel yang diberikan.
func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)
Dapatkan nilai dari semua sel pada lembar kerja yang ditentukan berdasarkan kolom, dan kembalikan dalam bentuk array dua dimensi, dengan nilai sel dikonversi ke tipe string. Jika format sel dapat diterapkan pada nilai sel, nilai yang diterapkan akan digunakan; jika tidak, nilai aslinya akan digunakan.
Sebagai contohnya, untuk mengambil dan mengulangi semua nilai sel pada lembar kerja yang bernama Sheet1 berdasarkan kolom:
cols, err := f.GetCols("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, col := range cols {
for _, rowCell := range col {
fmt.Print(rowCell, "\t")
}
fmt.Println()
}
func (f *File) GetRows(sheet string, opts ...Options) ([][]string, error)
Dapatkan nilai dari semua sel pada lembar kerja yang ditentukan berdasarkan baris, dan kembalikan dalam bentuk array dua dimensi, dengan nilai sel dikonversi ke tipe string. Jika format sel dapat diterapkan pada nilai sel, nilai yang diterapkan akan digunakan; jika tidak, nilai aslinya akan digunakan. GetRows mengambil baris dengan sel yang berisi nilai atau rumus. Sel kosong di akhir baris akan dilewati, dan jumlah sel dalam setiap baris mungkin bervariasi.
Sebagai contohnya, untuk mengambil dan mengulangi semua nilai sel pada lembar kerja yang bernama Sheet1 berdasarkan baris:
rows, err := f.GetRows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
func (f *File) GetCellHyperLink(sheet, cell string) (bool, string, error)
Dapatkan hyperlink dari sel yang ditentukan berdasarkan lembar kerja dan koordinat sel yang diberikan. Jika sel berisi hyperlink, akan mengembalikan `true` dan alamat tautan; jika tidak, akan mengembalikan `false` dan alamat tautan kosong.
Sebagai contoh, untuk mengambil hyperlink dari sel pada koordinat `H6` pada lembar kerja bernama `Sheet1`:
```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(sheet, cell string) (int, error)
Dapatkan indeks gaya sel yang ditentukan berdasarkan lembar kerja dan koordinat sel yang diberikan, dan indeks yang didapatkan dapat digunakan sebagai parameter saat memanggil fungsi SetCellStyle untuk menetapkan gaya sel.
func (f *File) MergeCell(sheet, hCell, vCell string) error
Gabungkan sel dalam wilayah koordinat sel dan lembar kerja yang diberikan. Hanya nilai sel pojok kiri atas dalam wilayah yang digabungkan yang akan dipertahankan, dan nilai sel lainnya akan diabaikan. Sebagai contoh, gabungkan sel dalam wilayah D3:E9 pada lembar kerja yang bernama Sheet1:
err := f.MergeCell("Sheet1", "D3", "E9")
Jika wilayah koordinat sel yang diberikan tumpang tindih dengan sel yang telah digabungkan, sel yang telah digabungkan sebelumnya akan dihapus.
func (f *File) UnmergeCell(sheet string, hCell, vCell string) error
Pisahkan sel dalam wilayah koordinat sel dan lembar kerja yang diberikan. Sebagai contoh, pisahkan sel dalam wilayah D3:E9 pada lembar kerja yang bernama Sheet1:
err := f.UnmergeCell("Sheet1", "D3", "E9")
Jika wilayah koordinat sel yang diberikan berisi beberapa sel yang sudah digabungkan, semua sel yang telah digabungkan akan dipisahkan.
Dapatkan wilayah koordinat dan nilai dari semua sel yang telah digabungkan dalam lembar kerja yang diberikan.
func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string
GetCellValue mengembalikan nilai sel yang telah digabungkan.
func (m *MergeCell) GetStartAxis() string
GetStartAxis mengembalikan koordinat sel pojok kiri atas wilayah sel yang telah digabungkan, misalnya, C2.
func (m *MergeCell) GetEndAxis() string
GetEndAxis mengembalikan koordinat sel pojok kanan bawah wilayah sel yang telah digabungkan, misalnya, D4.
func (f *File) AddComment(sheet string, comment Comment) error
Tambahkan komentar ke lembar kerja, koordinat sel, dan parameter gaya yang diberikan (penulis dan informasi teks). Informasi penulis memiliki panjang maksimum 255 karakter, dan panjang konten teks maksimum adalah 32512 karakter. Karakter di luar jangkauan ini akan diabaikan. Sebagai contoh, tambahkan komentar ke sel Sheet1!$A$3:

err := f.AddComment("Sheet1", excelize.Comment{
Cell: "A3",
Author: "Excelize",
Paragraph: []excelize.RichTextRun{
{Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
{Text: "Ini adalah komentar."},
},
})
func (f *File) GetComments(sheet string) ([]Comment, error)
Dapatkan semua komentar sel dalam lembar kerja yang diberikan.
func (f *File) DeleteComment(sheet, cell string) error
Hapus komentar pada lembar kerja dan koordinat sel yang diberikan. Sebagai contoh, hapus komentar dalam sel Sheet1!$A$30:
err := f.DeleteComment("Sheet1", "A30")