Hücre

RichTextRun, zengin metin özelliklerini tanımlar.

type RichTextRun struct {
    Font *Font
    Text string
}

HyperlinkOpts, isteğe bağlı bağlantı özelliklerini belirtmek için kullanılır, örneğin görüntü metni ve ekran ipucu.

type HyperlinkOpts struct {
    Display *string
    Tooltip *string
}

FormulaOpts, SetCellFormula fonksiyonunda özel formül tiplerini belirtmek için kullanılır.

type FormulaOpts struct {
    Type *string // formül tipi
    Ref  *string // paylaşılan formül referansı
}

Bir hücrenin değerini ayarla

func (f *File) SetCellValue(sheet, cell string, value interface{}) error

Belirtilen sayfa adı ve hücre koordinatlarına göre hücrenin değerini ayarlar. Bu işlev goroutine güvenlidir. Belirtilen koordinatlar tablonun ilk satırında olmamalı ve metin ayarlamak için çoğul karakterler kullanılmalıdır.

Desteklenen veri tipleri
int
int8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
float32
float64
string
[]byte
time.Duration
time.Time
bool
nil

Lütfen bu işlevin varsayılan olarak m/g/yy s:dd numara biçimiyle time.Time türünde bir hücrenin değerini ayarladığını unutun ve bunu SetCellStyle kullanarak değiştirebilirsiniz. Go dilinin time.Time türü ile temsil edilemeyen özel Excel tarihlerini ayarlamanız gerekiyorsa, örneğin 0 Ocak 1900 veya 29 Şubat 1900 gibi, hücrenin değerini 0 veya 60 olarak ayarlayın ve ardından bir tarih numarası biçimine sahip bir stille ayarlayın.

Mantıksal değer ayarla

func (f *File) SetCellBool(sheet, cell string, value bool) error

Belirtilen sayfa adı ve hücre koordinatlarına göre mantıksal bir hücrenin değerini ayarlar.

Varsayılan dize değeri ayarla

func (f *File) SetCellDefault(sheet, cell, value string) error

Belirtilen sayfa adı ve hücre koordinatlarına göre bir dize hücresinin değerini ayarlar, karakterler özel karakter filtrelemesine tabi tutulmaz.

Tamsayı ayarla

func (f *File) SetCellInt(sheet, cell string, value int) error

Belirtilen sayfa adı ve hücre koordinatlarına göre bir tamsayı hücresinin değerini ayarlar.

Ondalık sayı ayarla

func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSize int) error

Belirtilen sayfa adı, hücre koordinatları, ondalık değeri, ondalık kısmın hassasiyeti ve ondalık sayısının türüne göre bir ondalık sayı hücresinin değerini ayarlar.

Dize değeri ayarla

func (f *File) SetCellStr(sheet, cell, value string) error

Belirtilen sayfa adı ve hücre koordinatlarına göre bir dize hücresinin değerini ayarlar, karakterler özel karakter filtrelemesine tabi tutulur ve dizenin birikmiş uzunluğu 32767'yi aşmamalı, aşırı karakterler yoksayılacaktır.

Hücre Stilini Ayarla

func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error

Verilen sayfa adı, hücre koordinatları ve stil indeksi baz alınarak bir hücrenin değerini ayarlar. Bu işlev, çoklu iş parçacığına (thread-safe) uyumludur. Stil indeksi, NewStyle işlevi aracılığıyla elde edilebilir. Aynı koordinat alanı içindeki diagonalDown ve diagonalUp'ın tutarlı renklere sahip olması gerektiğine dikkat edin. SetCellStyle, hücrenin mevcut stilini üzerine yazacak olup, stilleri birleştirmez veya üst üste ekleyemez.

  • Örnek 1: Sheet1 adındaki sayfadaki D7 hücresi için kenarlık stili ayarlayın:
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)

Hücre için kenarlık stili ayarlama

D7 hücresinin dört kenarlık stili farklı stiller ve renklerle ayarlanmıştır, bu parametreler NewStyle işlevine iletilen değerler ile alakalıdır. Farklı stillerin ayarlanması için lütfen bu bölümdeki belgelendirmeye bakınız.

  • Örnek 2: Sheet1 adındaki sayfadaki D7 hücresi için gradyan stili ayarlayın:
style, err := f.NewStyle(&excelize.Style{
    Fill: excelize.Fill{Type: "gradient", Color: []string{"FFFFFF", "E0EBF5"}, Shading: 1},
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

Hücre için gradyan stili ayarlama

D7 hücresi, gradyan renkleri ile doldurulmuştur. Bu, NewStyle işlevine iletilen parametrelerle alakalıdır. Farklı stillerin ayarlanması için lütfen bu bölümdeki belgelendirmeye bakınız.

  • Örnek 3: Sheet1 adındaki sayfadaki D7 hücresi için düz renk doldurma ayarlayın:
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)

Hücre için düz renk doldurma ayarlama

D7 hücresi düz renk ile doldurulmuştur.

  • Örnek 4: Sheet1 adındaki sayfadaki D7 hücresi için karakter aralığı ve dönüş açısını ayarlayın:
f.SetCellValue("Sheet1", "D7", "Stil")
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)

Karakter aralığı ve dönüş açısı ayarlama

  • Örnek 5: Excel'de tarih ve saatler gerçek sayılarla temsil edilir, örneğin 2017/7/4 12:00:00 PM sayı 42920.5 ile temsil edilebilir. Çalışma sayfasındaki Sheet1 için D7 hücresi için saat formatını ayarlayın:
f.SetCellValue("Sheet1", "D7", 42920.5)
f.SetColWidth("Sheet1", "D", "D", 13)
stil, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", stil)

Hücre için saat formatını ayarlayın

Hücre D7 bir saat formatıyla ayarlanmıştır. Hücre genişliği, içeriği tam olarak görüntülemek için çok dar olduğunda #### olarak gösterilir. Sütun genişliğini sürükleyerek ayarlayabilir veya normal görüntü için uygun bir boyuta ayarlamak için SetColWidth fonksiyonunu çağırabilirsiniz.

  • Örnek 6: Sheet1 adlı çalışsayfasındaki D7 hücresi için yazı tipi, yazı tipi boyutu, renk ve eğik stilini ayarlayın:
f.SetCellValue("Sheet1", "D7", "Excel")
stil, 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", stil)

Hücre için yazı tipi, yazı tipi boyutu, renk ve eğik stilini ayarlayın

  • Örnek 7: Sheet1 adlı çalışsayfasındaki D7 hücresini kitleyin ve gizleyin:
stil, err := f.NewStyle(&excelize.Style{
    Protection: &excelize.Protection{
        Hidden: true,
        Locked: true,
    },
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", stil)

Hücreleri kilitlemek veya gizlemek için çalışsayfayı koruyun. "İncele" sekmesinde, "Sayfayı Koru" ya tıklayın.


```go
func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error

Hücreye verilen çalışsayfa, hücre koordinatları, bağlantı kaynağı ve kaynak tipine göre bağlantıyı ayarlayın. Kaynak tipi iki türü içerir: dış bağlantı adresi External ve çalışma kitabı içindeki iç konum bağlantısı Location. Her çalışsayfadaki maksimum bağlantı sayısı 65530 ile sınırlıdır. Bu yöntem sadece hücre için bağlantıyı ayarlar ve hücre değerini etkilemez. Hücre değerini ayarlamanız gerekiyorsa, lütfen SetCellStyle veya SetSheetRow gibi ayrı fonksiyonlar aracılığıyla ayrı ayrı ayarlayın.

  • Örnek 1: Sheet1 adlı çalışsayfasındaki A3 hücresine dış bağlantı ekleyin:
gösterim, açıklama := "https://github.com/xuri/excelize", "GitHub'da Excelize"
if err := f.SetCellHyperLink("Sheet1", "A3",
    "https://github.com/xuri/excelize", "External", excelize.HyperlinkOpts{
        Gösterim: &gösterim,
        İpucu: &açıklama,
    }); err != nil {
    fmt.Println(err)
}
// Hücre için yazı tipi ve alt çizgi stili ayarlayın
stil, err := f.NewStyle(&excelize.Style{
    Font: &excelize.Font{Color: "1265BE", Altçizgi: "tek"},
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "A3", "A3", stil)
  • Örnek 2: Sheet1 adlı çalışsayfasındaki A3 hücresine konum bağlantısı ekleyin:
err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error

Belirtilen çalışma sayfası, hücre koordinatları ve zengin metin biçimi üzerinde belirtilen hücre için zengin metin biçimini ayarlayın.

Örneğin, Sheet1 adlı çalışma sayfasında A1 hücresi için zengin metin biçimini ayarlayın:

paket ana

ithal (
    "fmt"

    "github.com/xuri/excelize/v2"
)

şunlardan fonksiyon ana() {
    f := excelize.NewFile()
    ertelemek için func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    if err := f.SetRowHeight("Sheet1", 1, 35); err != nil {
        fmt.Println(err)
        dönüş
    }
    if err := f.SetColWidth("Sheet1", "A", "A", 44); err != nil {
        fmt.Println(err)
        dönüş
    }
    if err := f.SetCellRichText("Sheet1", "A1", []excelize.RichTextRun{
        {
            Text: "kalın",
            Font: &excelize.Font{
                Bold:   true,
                Color:  "2354E8",
                Family: "Times New Roman",
            },
        },
        // ... (Diğer zengin metin koşuları)
    }); err != nil {
        fmt.Println(err)
        dönüş
    }
    // ... (Diğer hücre stili ayarları ve kaydetme)
}
Fonksiyon (f *Dosya) GetCellRichText(sheet, cell string) ([]RichTextRun, error)

Belirtilen çalışma sayfası ve hücre koordinatlarına dayalı olarak belirtilen hücrenin zengin metin biçimini alın.

Fonksiyon (f *Dosya) GetCellValue(sheet, cell string, opts ...Options) (string, error)

Belirtilen çalışma sayfası ve hücre koordinatlarına dayalı olarak belirtilen hücrenin değerini alın, ve dönüş değeri string türüne dönüştürülecektir. Hücre biçimi hücre değerine uygulanabilirse, uygulanan değer döndürülür; aksi takdirde orijinal değer döndürülür. Birleştirilmiş bir alanın tüm hücre değerleri aynıdır. Bu işlev, eşzamanlı kullanıma uygundur.

Fonksiyon (f *Dosya) GetCellType(sheet, cell string) (CellType, error)

Belirtilen çalışma sayfası ve hücre koordinatlarına dayalı olarak belirtilen hücrenin veri türünü alın.

Fonksiyon (f *Dosya) GetCols(sheet string, opts ...Options) ([][]string, error)

Belirtilen çalışma sayfasındaki tüm hücre değerlerini sütuna göre alın ve bunları hücre değerleri string türüne dönüştürülerek iki boyutlu dizi biçiminde döndürün. Hücre biçimi hücre değerine uygulanabilirse, uygulanan değer kullanılacaktır; aksi takdirde orijinal değer kullanılacaktır.

Örneğin, Sheet1 adlı çalışma sayfasındaki tüm hücre değerlerini sütuna göre alıp üzerinde döngü yapmak için:

sütunlar, err := f.GetCols("Sheet1")
if err != nil {
    fmt.Println(err)
    dönüş
}
for _, sütun := range sütunlar {
    for _, satırHücresi := range sütun {
        fmt.Print(satırHücresi, "\t")
    }
    fmt.Println()
}
Fonksiyon (f *Dosya) GetRows(sheet string, opts ...Options) ([][]string, error)

Belirtilen çalışma sayfasındaki tüm hücre değerlerini satıra göre alın ve bunları hücre değerleri string türüne dönüştürerek iki boyutlu dizi biçiminde döndürün. Hücre biçimi hücre değerine uygulanabilirse, uygulanan değer kullanılacaktır; aksi takdirde orijinal değer kullanılacaktır. GetRows, değer veya formüller içeren hücreleri içeren satırları alır. Bir satırın sonundaki boş hücreler atlanacak ve her satırdaki hücre sayısı değişebilir.

Örneğin, Sheet1 adlı çalışma sayfasındaki tüm hücre değerlerini satıra göre alıp üzerinde döngü yapmak için:

satırlar, err := f.GetRows("Sheet1")
if err != nil {
    fmt.Println(err)
    dönüş
}
for _, satır := range satırlar {
    for _, sütunHücresi := range satır {
        fmt.Print(sütunHücresi, "\t")
    }
    fmt.Println()
}
Fonksiyon (f *Dosya) GetCellHyperLink(sheet, cell string) (bool, string, error)
Belirtilen çalışma sayfası ve hücre koordinatlarına dayalı olarak bir hücrenin hiperbağlantısını alın. Hücre bir hiperbağlantı içeriyorsa, `true` ve bağlantı adresini döndürecektir; aksi takdirde `false` ve boş bağlantı adresini döndürecektir. 

Örneğin, `Sheet1` olarak adlandırılan çalışma sayfasındaki `H6` koordinatlarındaki hücrenin hiperbağlantısını almak için:

```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(sheet, cell string) (int, error)

Belirtilen çalışma sayfası ve hücre koordinatlarına dayalı olarak hücrenin stili indeksini alın ve alınan indeks, hücre stili ayarlamak için SetCellStyle fonksiyonunu çağırırken bir parametre olarak kullanılabilir.

func (f *File) MergeCell(sheet, hCell, vCell string) error

Verilen çalışma sayfası ve hücre koordinat bölgesindeki hücreleri birleştirin. Birleştirilen bölgenin sol üstündeki hücrenin değeri sadece saklanır, diğer hücrelerin değerleri ihmal edilir. Örneğin, Sheet1 olarak adlandırılan çalışma sayfasındaki D3:E9 bölgesindeki hücreleri birleştirin:

err := f.MergeCell("Sheet1", "D3", "E9")

Verilen hücre koordinat bölgesi mevcut birleştirilmiş hücrelerle çakışıyorsa, mevcut birleştirilmiş hücreler kaldırılır.

func (f *File) UnmergeCell(sheet string, hCell, vCell string) error

Verilen çalışma sayfası ve hücre koordinat bölgesindeki hücreleri birleştirmeyi kaldırın. Örneğin, Sheet1 olarak adlandırılan çalışma sayfasındaki D3:E9 bölgesindeki hücreleri birleştirmeyi kaldırın:

err := f.UnmergeCell("Sheet1", "D3", "E9")

Verilen hücre koordinat bölgesi birden fazla birleştirilmiş hücre içeriyorsa, tüm birleştirilmiş hücrelerin birleştirilmesi kaldırılır.

Verilen çalışma sayfasındaki tüm birleştirilmiş hücrelerin koordinat bölgesini ve değerlerini alın.

func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string

GetCellValue, birleştirilmiş hücrenin değerini döndürür.

func (m *MergeCell) GetStartAxis() string

GetStartAxis, birleştirilmiş hücre bölgesinin sol üst hücresinin koordinatını döndürür, örneğin C2.

func (m *MergeCell) GetEndAxis() string

GetEndAxis, birleştirilmiş hücre bölgesinin sağ alt hücresinin koordinatını döndürür, örneğin D4.

func (f *File) AddComment(sheet string, comment Comment) error

Verilen çalışma sayfasına, hücre koordinatına ve stil parametrelerine (yazar ve metin bilgisi) bir yorum ekleyin. Yazar bilgisi en fazla 255 karakter uzunluğundadır ve maksimum metin içeriği uzunluğu 32512 karakterdir. Bu aralığın ötesindeki karakterler ihmal edilecektir. Örneğin, Sheet1!$A$3 hücresine yorum ekleyin:

Excel belgesinde yorum ekleyin

err := f.AddComment("Sheet1", excelize.Comment{
    Cell:   "A3",
    Author: "Excelize",
    Paragraph: []excelize.RichTextRun{
        {Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
        {Text: "Bu bir yorumdur."},
    },
})
func (f *File) GetComments(sheet string) ([]Comment, error)

Verilen çalışma sayfasındaki tüm hücre yorumlarını alın.

func (f *File) DeleteComment(sheet, cell string) error

Verilen çalışma sayfasındaki ve hücre koordinatındaki yorumu silin. Örneğin, Sheet1!$A$30 hücresindeki yorumu silin:

err := f.DeleteComment("Sheet1", "A30")