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
D7
pada 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
D7
pada 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
D7
pada 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
D7
pada 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 PM
dapat direpresentasikan oleh angka42920.5
. Tetapkan format waktu untuk selD7
dalam 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
D7
dalam 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
D7
dalam 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
A3
dalam 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
A3
dalam 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")