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 sayfadakiD7
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)
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 sayfadakiD7
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)
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 sayfadakiD7
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)
D7
hücresi düz renk ile doldurulmuştur.
- Örnek 4:
Sheet1
adındaki sayfadakiD7
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)
- Ö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ındakiSheet1
içinD7
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 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ındakiD7
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)
- Örnek 7:
Sheet1
adlı çalışsayfasındakiD7
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ındakiA3
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ındakiA3
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:
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")