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 bernama Sheet1:
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)

Set gaya batas untuk sebuah sel

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 bernama Sheet1:
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)

Set gaya gradien untuk sebuah sel

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 bernama Sheet1:
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)

Atur pengisian warna solid untuk sebuah sel

Sel D7 diisi dengan warna solid.

  • Contoh 4: Atur jarak karakter dan sudut rotasi untuk sel D7 pada lembar bernama Sheet1:
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)

Atur jarak karakter dan sudut rotasi

  • Contoh 5: Tanggal dan waktu dalam Excel direpresentasikan oleh angka real, misalnya, 2017/7/4 12:00:00 PM dapat direpresentasikan oleh angka 42920.5. Tetapkan format waktu untuk sel D7 dalam lembar kerja yang bernama Sheet1:
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)

Atur format waktu untuk sel

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 bernama Sheet1:
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)

Atur huruf, ukuran huruf, warna, dan gaya miring untuk sel

  • Contoh 7: Kunci dan sembunyikan sel D7 dalam lembar kerja yang bernama Sheet1:
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 bernama Sheet1:
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 bernama Sheet1:
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`:

![Set Rich Text Format](/storage/20231012/uog6n6jRKVmPjoBa.png)

```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:

Tambahkan komentar dalam dokumen Excel

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