Komórka
RichTextRun definiuje właściwości tekstu sformatowanego.
type RichTextRun struct {
Font *Font
Text string
}
HyperlinkOpts służy do określania opcjonalnych właściwości hiperłącza, takich jak tekst wyświetlany i podpowiedź.
type HyperlinkOpts struct {
Display *string
Tooltip *string
}
FormulaOpts służy do określania specjalnych typów formuł w funkcji SetCellFormula.
type FormulaOpts struct {
Type *string // typ formuły
Ref *string // odniesienie do formuły współdzielonej
}
Ustawienie wartości komórki
func (f *File) SetCellValue(sheet, cell string, value interface{}) error
Ustawia wartość komórki na podstawie podanej nazwy arkusza i współrzędnych komórki. Ta funkcja jest bezpieczna dla gorutyn. Podane współrzędne nie powinny znajdować się w pierwszym wierszu tabeli, a do ustawiania tekstu powinno się używać formy liczby mnogiej.
| Obsługiwane typy danych |
|---|
| int |
| int8 |
| int16 |
| int32 |
| int64 |
| uint |
| uint8 |
| uint16 |
| uint32 |
| uint64 |
| float32 |
| float64 |
| string |
| []byte |
| time.Duration |
| time.Time |
| bool |
| nil |
Należy zauważyć, że ta funkcja domyślnie ustawia wartość komórki o typie time.Time z formatem liczbowym m/d/rr gg:mm, ale można to zmienić, używając SetCellStyle. Jeśli trzeba ustawić specjalne daty w Excelu, które nie mogą być reprezentowane przez typ time.Time w języku Go, takie jak 0 stycznia 1900 roku lub 29 lutego 1900 roku, należy ustawić wartość komórki na 0 lub 60, a następnie ustawić ją zgodnie ze stylem zawierającym format liczbowy daty.
Ustawienie wartości logicznej
func (f *File) SetCellBool(sheet, cell string, value bool) error
Ustawia wartość logicznej komórki na podstawie podanej nazwy arkusza i współrzędnych komórki.
Ustawienie domyślnej wartości tekstowej
func (f *File) SetCellDefault(sheet, cell, value string) error
Ustawia wartość tekstowej komórki na podstawie podanej nazwy arkusza i współrzędnych komórki, a znaki nie będą podlegały filtrowaniu specjalnych znaków.
Ustawienie wartości liczbowej
func (f *File) SetCellInt(sheet, cell string, value int) error
Ustawia wartość liczbowej komórki na podstawie podanej nazwy arkusza i współrzędnych komórki.
Ustawienie wartości zmiennoprzecinkowej
func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSize int) error
Ustawia wartość komórki zmiennoprzecinkowej na podstawie podanej nazwy arkusza, współrzędnych komórki, wartości zmiennoprzecinkowej, dokładności części ułamkowej liczby zmiennoprzecinkowej i typu liczby zmiennoprzecinkowej.
Ustawienie wartości tekstowej
func (f *File) SetCellStr(sheet, cell, value string) error
Ustawia wartość tekstowej komórki na podstawie podanej nazwy arkusza i współrzędnych komórki, znaki będą podlegały filtrowaniu specjalnych znaków, a łączna długość ciągu nie powinna przekraczać 32767, ewentualne nadmiarowe znaki zostaną zignorowane.
Ustawianie stylu komórki
func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error
Ustawia wartość komórki na podstawie podanej nazwy arkusza, współrzędnych komórki i indeksu stylu. Ta funkcja jest bezpieczna w wątkach. Indeks stylu można uzyskać za pomocą funkcji NewStyle. Należy zauważyć, że diagonalDown i diagonalUp w obrębie tych samych współrzędnych muszą zachować spójne kolory. SetCellStyle zastąpi istniejący styl komórki bez łączenia lub nakładania stylów.
- Przykład 1: Ustawienie stylu obramowania dla komórki
D7w arkuszu o nazwieSheet1:
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)

Cztery krawędzie komórki D7 są ustawione z różnymi stylami i kolorami, które są powiązane z parametrami przekazanymi do funkcji NewStyle. Aby ustawić różne style, proszę odnieść się do dokumentacji w tym rozdziale.
- Przykład 2: Ustawienie stylu gradientowego dla komórki
D7w arkuszu o nazwieSheet1:
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)

Komórka D7 jest wypełniona gradientowymi kolorami, co jest powiązane z parametrami przekazanymi do funkcji NewStyle. Aby ustawić różne style, proszę odnieść się do dokumentacji w tym rozdziale.
- Przykład 3: Ustawienie wypełnienia komórki
D7w arkuszu o nazwieSheet1na kolor jednolity:
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)

Komórka D7 jest wypełniona jednolitym kolorem.
- Przykład 4: Ustawienie odstępów między znakami i kąta rotacji dla komórki
D7w arkuszu o nazwieSheet1:
f.SetCellValue("Sheet1", "D7", "Styl")
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)

- Przykład 5: Daty i godziny w programie Excel są reprezentowane przez liczby rzeczywiste, na przykład
2017/7/4 12:00:00 PMmoże być reprezentowane przez liczbę42920.5. Ustaw format czasu dla komórkiD7w arkuszu o nazwieSheet1:
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)

Komórka D7 jest ustawiona z formatem czasowym. Zauważ, że gdy szerokość komórki jest zbyt wąska, by wyświetlić całą zawartość, pojawi się jako ####. Można dostosować szerokość kolumny poprzez przeciąganie lub poprzez wywołanie funkcji SetColWidth w celu ustawienia odpowiedniej szerokości kolumny dla normalnego wyświetlania.
- Przykład 6: Ustaw czcionkę, rozmiar czcionki, kolor i styl pochylenia dla komórki
D7w arkuszu o nazwieSheet1:
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)

- Przykład 7: Zablokuj i ukryj komórkę
D7w arkuszu o nazwieSheet1:
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)
Aby zablokować lub ukryć komórki, chron arkusz. Na karcie "Recenzja" kliknij "Chronienie arkusza".
func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error
Ustaw hiperłącze dla komórki na podstawie danego arkusza, współrzędnych komórki, zasobu łącza i typu zasobu. Typ zasobu obejmuje dwa typy: adres zewnętrznego łącza External i wewnętrzne łącze do pozycji w skoroszycie Location. Maksymalna liczba hiperłączy w każdym arkuszu jest ograniczona do 65530. Ta metoda ustawia tylko hiperłącze dla komórki bez wpływu na wartość komórki. Jeśli chcesz ustawić wartość komórki, proszę ustawić ją osobno za pomocą funkcji takich jak SetCellStyle lub SetSheetRow.
- Przykład 1: Dodaj zewnętrzne łącze do komórki
A3w arkuszu o nazwieSheet1:
display, tooltip := "https://github.com/xuri/excelize", "Excelize na GitHubie"
if err := f.SetCellHyperLink("Sheet1", "A3",
"https://github.com/xuri/excelize", "External", excelize.HyperlinkOpts{
Display: &display,
Tooltip: &tooltip,
}); err != nil {
fmt.Println(err)
}
// Ustaw styl czcionki i styl podkreślenia dla komórki
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)
- Przykład 2: Dodaj wewnętrzne łącze do komórki
A3w arkuszu o nazwieSheet1:
err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error
Ustaw formatowanie tekstu sformatowanego dla określonej komórki na podstawie określonego arkusza, współrzędnych komórki i formatowania tekstu sformatowanego.
Na przykład, ustaw format tekstu sformatowanego dla komórki `A1` w arkuszu o nazwie `Sheet1`:

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: "pogrubienie",
Font: &excelize.Font{
Bold: true,
Color: "2354E8",
Family: "Times New Roman",
},
},
// ... (Inne sekwencje formatowania tekstu)
}); err != nil {
fmt.Println(err)
return
}
// ... (Inne ustawienia stylu komórki i zapisywanie)
}
func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)
Pobierz formatowanie tekstu sformatowanego określonej komórki na podstawie określonego arkusza i współrzędnych komórki.
func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)
Pobiera wartość określonej komórki na podstawie określonego arkusza i współrzędnych komórki, a wartość zwracana zostanie przekonwertowana do typu string. Jeśli można zastosować format komórki do wartości komórki, zostanie zwrócona zastosowana wartość; w przeciwnym razie zostanie zwrócona oryginalna wartość. Wartości wszystkich komórek w ramach obszaru scalonego są takie same. Ta funkcja jest bezpieczna w przypadku współbieżności.
func (f *File) GetCellType(sheet, cell string) (CellType, error)
Pobierz typ danych określonej komórki na podstawie określonego arkusza i współrzędnych komórki.
func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)
Pobiera wartości wszystkich komórek na określonym arkuszu według kolumny i zwraca je w postaci dwuwymiarowej tablicy, a wartości komórek są konwertowane do typu string. Jeśli można zastosować format komórki do wartości komórki, zostanie użyta zastosowana wartość; w przeciwnym razie zostanie użyta oryginalna wartość.
Na przykład, aby pobrać i iterować przez wszystkie wartości komórek na arkuszu o nazwie Sheet1 według kolumny:
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)
Pobiera wartości wszystkich komórek na określonym arkuszu według wiersza i zwraca je w postaci dwuwymiarowej tablicy, a wartości komórek są konwertowane do typu string. Jeśli można zastosować format komórki do wartości komórki, zostanie użyta zastosowana wartość; w przeciwnym razie zostanie użyta oryginalna wartość. GetRows pobiera wiersze z komórkami zawierającymi wartości lub formuły. Puste komórki na końcu wiersza zostaną pominięte, a liczba komórek w każdym wierszu może się różnić.
Na przykład, aby pobrać i iterować przez wszystkie wartości komórek na arkuszu o nazwie Sheet1 według wiersza:
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)
Pobierz hiperłącze określonej komórki na podstawie określonego arkusza i współrzędnych komórki. Jeśli komórka zawiera hiperłącze, zostanie zwrócone `true` i adres hiperłącza; w przeciwnym razie zostanie zwrócone `false` i pusty adres hiperłącza.
Na przykład, aby pobrać hiperłącze komórki o współrzędnych `H6` na arkuszu o nazwie `Sheet1`:
```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(sheet, cell string) (int, error)
Pobierz indeks stylu określonej komórki na podstawie arkusza i współrzędnych komórki, a następnie pobrany indeks można użyć jako parametr podczas wywoływania funkcji SetCellStyle do ustawiania stylu komórki.
func (f *File) MergeCell(sheet, hCell, vCell string) error
Scal komórki w określonym obszarze arkusza i współrzędnych komórki. Tylko wartość komórki w lewym górnym rogu scalonego obszaru zostanie zachowana, a wartości innych komórek zostaną zignorowane. Na przykład scal komórki w obszarze D3:E9 na arkuszu o nazwie Sheet1:
err := f.MergeCell("Sheet1", "D3", "E9")
Jeśli określony obszar współrzędnych komórki pokrywa się z istniejącymi scalonymi komórkami, istniejące scalone komórki zostaną usunięte.
func (f *File) UnmergeCell(sheet string, hCell, vCell string) error
Rozłącz komórki w określonym obszarze arkusza i współrzędnych komórki. Na przykład rozłącz komórki w obszarze D3:E9 na arkuszu o nazwie Sheet1:
err := f.UnmergeCell("Sheet1", "D3", "E9")
Jeśli określony obszar współrzędnych komórek zawiera wiele scalonych komórek, wszystkie scalone komórki zostaną rozłączone.
Pobierz obszar współrzędnych i wartości wszystkich scalonych komórek na określonym arkuszu.
func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string
GetCellValue zwraca wartość scalonej komórki.
func (m *MergeCell) GetStartAxis() string
GetStartAxis zwraca współrzędne lewego górnego rogu obszaru scalonej komórki, na przykład C2.
func (m *MergeCell) GetEndAxis() string
GetEndAxis zwraca współrzędne prawego dolnego rogu obszaru scalonej komórki, na przykład D4.
func (f *File) AddComment(sheet string, comment Comment) error
Dodaj komentarz do określonego arkusza, współrzędnych komórki i parametrów stylu (informacje o autorze i tekście). Informacje o autorze mogą mieć maksymalną długość 255 znaków, a maksymalna długość treści tekstu wynosi 32512 znaków. Znaki poza tym zakresem zostaną zignorowane. Na przykład dodaj komentarz do komórki Sheet1!$A$3:

err := f.AddComment("Sheet1", excelize.Comment{
Cell: "A3",
Author: "Excelize",
Paragraph: []excelize.RichTextRun{
{Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
{Text: "To jest komentarz."},
},
})
func (f *File) GetComments(sheet string) ([]Comment, error)
Pobierz wszystkie komentarze komórek na określonym arkuszu.
func (f *File) DeleteComment(sheet, cell string) error
Usuń komentarz w określonym arkuszu i współrzędnych komórki. Na przykład usuń komentarz w komórce Sheet1!$A$30:
err := f.DeleteComment("Sheet1", "A30")