Zelle
Der RichTextRun
definiert die Eigenschaften von Rich-Text.
type RichTextRun struct {
Schriftart *Schriftart
Text string
}
Die HyperlinkOpts
wird verwendet, um optionale Hyperlink-Eigenschaften anzugeben, wie z.B. den Anzeigetext und den Bildschirmtipp.
type HyperlinkOpts struct {
Anzeige *string
Tooltip *string
}
Die FormulaOpts
wird verwendet, um spezielle Formeltypen in der Funktion SetCellFormula
anzugeben.
type FormulaOpts struct {
Typ *string // Formeltyp
Ref *string // gemeinsame Formelreferenz
}
Den Wert einer Zelle setzen
func (f *File) SetCellValue(sheet, cell string, value interface{}) error
Setzen Sie den Wert einer Zelle basierend auf dem angegebenen Tabellennamen und den Zellenkoordinaten. Diese Funktion ist goroutine-sicher. Die angegebenen Koordinaten sollten nicht in der ersten Zeile der Tabelle liegen, und für die Texteinstellung sollten Pluralzeichen verwendet werden.
Unterstützte Datentypen |
---|
int |
int8 |
int16 |
int32 |
int64 |
uint |
uint8 |
uint16 |
uint32 |
uint64 |
float32 |
float64 |
string |
[]byte |
time.Duration |
time.Time |
bool |
nil |
Bitte beachten Sie, dass diese Funktion standardmäßig den Wert einer Zelle des Typs time.Time
mit dem Zahlenformat m/d/yy h:mm
setzt, und Sie können diese Einstellung mit SetCellStyle
ändern. Wenn Sie spezielle Excel-Daten setzen müssen, die nicht durch den Datentyp time.Time
der Go-Sprache dargestellt werden können, wie z.B. der 0. Januar 1900 oder der 29. Februar 1900, setzen Sie den Wert der Zelle auf 0 oder 60 und setzen Sie ihn dann mit einem Stil, der ein Datumszahlformat hat.
Booleschen Wert setzen
func (f *File) SetCellBool(sheet, cell string, value bool) error
Setzen Sie den Wert einer booleschen Zelle basierend auf dem angegebenen Tabellennamen und den Zellenkoordinaten.
Standardzeicheneingabe setzen
func (f *File) SetCellDefault(sheet, cell, value string) error
Setzen Sie den Wert einer Zeichenkette basierend auf dem angegebenen Tabellennamen und den Zellenkoordinaten, und die Zeichen werden keiner Sonderzeichnenfilterung unterzogen.
Ganzzahl setzen
func (f *File) SetCellInt(sheet, cell string, value int) error
Setzen Sie den Wert einer Ganzzahlzelle basierend auf dem angegebenen Tabellennamen und den Zellenkoordinaten.
Gleitkommazahl setzen
func (f *File) SetCellFloat(sheet, cell string, value float64, Genauigkeit, Bitgröße int) error
Setzen Sie den Wert einer Gleitkommazelle basierend auf dem angegebenen Tabellennamen, den Zellenkoordinaten, dem Gleitkommawert, der Genauigkeit des Bruchteils der Gleitkommazahl und dem Typ der Gleitkommazahl.
Zeichenkettenwert setzen
func (f *File) SetCellStr(sheet, cell, value string) error
Setzen Sie den Wert einer Zeichenkette basierend auf dem angegebenen Tabellennamen und den Zellenkoordinaten, die Zeichen werden einer Sonderzeichnenfilterung unterzogen, und die Gesamtlänge der Zeichenkette sollte 32767
nicht überschreiten. Übermäßige Zeichen werden ignoriert.
Zellstil festlegen
func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error
Legt den Wert einer Zelle basierend auf dem angegebenen Tabellennamen, den Zellenkoordinaten und dem Style-Index fest. Diese Funktion ist thread-sicher. Der Style-Index kann durch die NewStyle
-Funktion erhalten werden. Beachten Sie, dass diagonalDown
und diagonalUp
im selben Koordinatenbereich die konsistenten Farben beibehalten müssen. SetCellStyle
überschreibt den vorhandenen Stil der Zelle, ohne die Stile zu stapeln oder zu vereinen.
- Beispiel 1: Setzen Sie den Randstil für Zelle
D7
im Tabellenblatt mit dem NamenSheet1
:
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)
Die vier Ränder der Zelle D7
werden mit verschiedenen Stilen und Farben gesetzt, die mit den Parametern der NewStyle
-Funktion zusammenhängen. Für das Setzen verschiedener Stile lesen Sie bitte die Dokumentation in diesem Kapitel.
- Beispiel 2: Setzen Sie den Gradient-Stil für Zelle
D7
im Tabellenblatt mit dem NamenSheet1
:
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)
Die Zelle D7
ist mit Farbverläufen gefüllt, was mit den Parametern der NewStyle
-Funktion zusammenhängt. Für das Setzen verschiedener Stile lesen Sie bitte die Dokumentation in diesem Kapitel.
- Beispiel 3: Setzen Sie eine einfarbige Füllung für Zelle
D7
im Tabellenblatt mit dem NamenSheet1
:
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)
Die Zelle D7
ist mit einer einfarbigen Füllung versehen.
- Beispiel 4: Setzen Sie Zeichenabstände und die Rotationswinkel für Zelle
D7
im Tabellenblatt mit dem NamenSheet1
:
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)
- Beispiel 5: Daten und Uhrzeiten in Excel werden durch reale Zahlen dargestellt. Zum Beispiel kann
2017/7/4 12:00:00 PM
durch die Zahl42920.5
dargestellt werden. Legen Sie das Zeitformat für die ZelleD7
im Arbeitsblatt mit dem NamenTabelle1
fest:
f.SetCellValue("Tabelle1", "D7", 42920.5)
f.SetColWidth("Tabelle1", "D", "D", 13)
style, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Tabelle1", "D7", "D7", style)
Die Zelle D7
ist mit einem Zeitformat versehen. Beachten Sie, dass, wenn die Zellenbreite zu schmal ist, um den kompletten Inhalt anzuzeigen, es als ####
angezeigt wird. Sie können die Spaltenbreite anpassen, indem Sie ziehen oder die Funktion SetColWidth
aufrufen, um die Spaltenbreite auf eine angemessene Größe für die normale Anzeige einzustellen.
- Beispiel 6: Legen Sie die Schriftart, Schriftgröße, Farbe und Kursivstil für die Zelle
D7
im Arbeitsblatt mit dem NamenTabelle1
fest:
f.SetCellValue("Tabelle1", "D7", "Excel")
style, err := f.NewStyle(&excelize.Style{
Font: &excelize.Font{
Fett: true,
Kursiv: true,
Familie: "Times New Roman",
Größe: 36,
Farbe: "777777",
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Tabelle1", "D7", "D7", style)
- Beispiel 7: Sperren und Verstecken Sie die Zelle
D7
im Arbeitsblatt mit dem NamenTabelle1
:
style, err := f.NewStyle(&excelize.Style{
Schutz: &excelize.Schutz{
Versteckt: true,
Gesperrt: true,
},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Tabelle1", "D7", "D7", style)
Um Zellen zu sperren oder zu verstecken, schützen Sie das Arbeitsblatt. Klicken Sie auf der Registerkarte "Überprüfen" auf "Arbeitsblatt schützen".
func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error
Setzt den Hyperlink für eine Zelle auf Grundlage des Arbeitsblatts, der Zellenkoordinaten, der Link-Ressource und des Ressourcentyps. Der Ressourcentyp umfasst zwei Typen: externe Verknüpfungsadresse Extern
und internen Positionslink innerhalb der Arbeitsmappe Ort
. Die maximale Anzahl von Hyperlinks in jedem Arbeitsblatt ist auf 65530
beschränkt. Diese Methode setzt nur den Hyperlink für die Zelle, ohne den Zellenwert zu beeinflussen. Wenn Sie den Zellenwert setzen müssen, setzen Sie ihn bitte separat über Funktionen wie SetCellStyle
oder SetSheetRow
.
- Beispiel 1: Fügen Sie eine externe Verknüpfung in die Zelle
A3
im Arbeitsblatt mit dem NamenTabelle1
ein:
Anzeigen, Tooltip := "https://github.com/xuri/excelize", "Excelize auf GitHub"
if err := f.SetCellHyperLink("Tabelle1", "A3",
"https://github.com/xuri/excelize", "Extern", excelize.HyperlinkOpts{
Anzeigen: &Anzeigen,
Tooltip: &Tooltip,
}); err != nil {
fmt.Println(err)
}
// Setze Schriftart und Unterstreichungsstil für die Zelle
style, err := f.NewStyle(&excelize.Style{
Schrift: &excelize.Schrift{Farbe: "1265BE", Unterstreichen: "einfach"},
})
if err != nil {
fmt.Println(err)
}
err = f.SetCellStyle("Tabelle1", "A3", "A3", style)
- Beispiel 2: Fügen Sie einen Positionslink in die Zelle
A3
im Arbeitsblatt mit dem NamenTabelle1
ein:
err := f.SetCellHyperLink("Tabelle1", "A3", "Tabelle1!A40", "Ort")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error
Legen Sie das Rich-Text-Format für die angegebene Zelle anhand des angegebenen Rechenblatts, Zellenkoordinaten und Rich-Text-Formats fest.
Beispielsweise, legen Sie das Rich-Text-Format für Zelle `A1` im Arbeitsblatt namens `Blatt1` fest:

```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("Blatt1", 1, 35); err != nil {
fmt.Println(err)
return
}
if err := f.SetColWidth("Blatt1", "A", "A", 44); err != nil {
fmt.Println(err)
return
}
if err := f.SetCellRichText("Blatt1", "A1", []excelize.RichTextRun{
{
Text: "fett",
Font: &excelize.Font{
Bold: true,
Color: "2354E8",
Family: "Times New Roman",
},
},
// ... (Andere Rich-Text-Läufe)
}); err != nil {
fmt.Println(err)
return
}
// ... (Andere Zellformatierungseinstellungen und Speichern)
}
func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)
Holen Sie das Rich-Text-Format der angegebenen Zelle anhand des angegebenen Arbeitsblatts und der Zellenkoordinaten.
func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)
Holen Sie den Wert der angegebenen Zelle anhand des angegebenen Arbeitsblatts und der Zellenkoordinaten, und der Rückgabewert wird in den Typ string
konvertiert. Wenn das Zellformat auf den Zellenwert angewendet werden kann, wird der angewendete Wert zurückgegeben; andernfalls wird der ursprüngliche Wert zurückgegeben. Die Werte aller Zellen innerhalb eines zusammengeführten Bereichs sind gleich. Diese Funktion ist concurrency-safe.
func (f *File) GetCellType(sheet, cell string) (CellType, error)
Holen Sie den Datentyp der angegebenen Zelle anhand des angegebenen Arbeitsblatts und der Zellenkoordinaten.
func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)
Rufen Sie die Werte aller Zellen auf dem angegebenen Arbeitsblatt nach Spalte ab und geben Sie sie in Form eines zweidimensionalen Arrays zurück, wobei die Zellwerte in den Typ string
konvertiert werden. Wenn das Zellenformat auf den Zellenwert angewendet werden kann, wird der angewendete Wert verwendet; andernfalls wird der ursprüngliche Wert verwendet.
Beispiel: Um alle Zellwerte im Arbeitsblatt namens Blatt1
nach Spalte abzurufen und zu durchlaufen:
cols, err := f.GetCols("Blatt1")
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)
Rufen Sie die Werte aller Zellen auf dem angegebenen Arbeitsblatt nach Zeile ab und geben Sie sie in Form eines zweidimensionalen Arrays zurück, wobei die Zellwerte in den Typ string
konvertiert werden. Wenn das Zellenformat auf den Zellenwert angewendet werden kann, wird der angewendete Wert verwendet; andernfalls wird der ursprüngliche Wert verwendet. GetRows
ruft Zeilen mit Zellen ab, die Werte oder Formeln enthalten. Leere Zellen am Ende einer Zeile werden übersprungen, und die Anzahl der Zellen in jeder Zeile kann variieren.
Beispiel: Um alle Zellwerte im Arbeitsblatt namens Blatt1
nach Zeile abzurufen und zu durchlaufen:
rows, err := f.GetRows("Blatt1")
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)
Holz den Hyperlink der angegebenen Zelle anhand des gegebenen Arbeitsblatts und der Zellkoordinaten ab. Wenn die Zelle einen Hyperlink enthält, gibt sie `true` und die Link-Adresse zurück. Andernfalls gibt sie `false` und eine leere Link-Adresse zurück.
Beispiel: Um den Hyperlink der Zelle mit den Koordinaten `H6` im Arbeitsblatt mit dem Namen `Sheet1` abzurufen:
```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(sheet, cell string) (int, error)
Hole den Style-Index der angegebenen Zelle basierend auf dem gegebenen Arbeitsblatt und den Zellkoordinaten ab. Der abgerufene Index kann als Parameter beim Aufruf der Funktion SetCellStyle
verwendet werden, um den Zellenstil festzulegen.
func (f *File) MergeCell(sheet, hCell, vCell string) error
Vereine die Zellen in der angegebenen Arbeitsblatt- und Zellkoordinatenregion. Nur der Wert der linken oberen Zelle im vereinten Bereich wird beibehalten, und die Werte anderer Zellen werden ignoriert. Beispiel: Vereine die Zellen im Bereich D3:E9
im Arbeitsblatt mit dem Namen Sheet1
:
err := f.MergeCell("Sheet1", "D3", "E9")
Wenn sich die gegebene Zellkoordinatenregion mit vorhandenen vereinten Zellen überschneidet, werden die vorhandenen vereinten Zellen entfernt.
func (f *File) UnmergeCell(sheet string, hCell, vCell string) error
Trenne die Zellen in der angegebenen Arbeitsblatt- und Zellkoordinatenregion. Beispiel: Trenne die Zellen im Bereich D3:E9
im Arbeitsblatt mit dem Namen Sheet1
:
err := f.UnmergeCell("Sheet1", "D3", "E9")
Wenn die gegebene Zellkoordinatenregion mehrere vereinte Zellen enthält, werden alle vereinten Zellen getrennt.
Hole die Koordinatenregion und Werte aller vereinten Zellen im gegebenen Arbeitsblatt ab.
func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string
GetCellValue
gibt den Wert der vereinten Zelle zurück.
func (m *MergeCell) GetStartAxis() string
GetStartAxis
gibt die Koordinate der linken oberen Zelle des vereinten Zellenbereichs zurück, z. B. C2
.
func (m *MergeCell) GetEndAxis() string
GetEndAxis
gibt die Koordinate der rechten unteren Zelle des vereinten Zellenbereichs zurück, z. B. D4
.
func (f *File) AddComment(sheet string, comment Comment) error
Füge dem gegebenen Arbeitsblatt, den Zellkoordinaten und den Style-Parametern (Autor- und Textinformationen) einen Kommentar hinzu. Die Informationen des Autors dürfen maximal 255 Zeichen lang sein, und die maximale Textinhaltslänge beträgt 32512 Zeichen. Zeichen außerhalb dieses Bereichs werden ignoriert. Beispiel: Füge einen Kommentar zur Zelle Sheet1!$A$3
hinzu:
err := f.AddComment("Sheet1", excelize.Comment{
Cell: "A3",
Author: "Excelize",
Paragraph: []excelize.RichTextRun{
{Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
{Text: "Dies ist ein Kommentar."},
},
})
func (f *File) GetComments(sheet string) ([]Comment, error)
Hole alle Zellkommentare im gegebenen Arbeitsblatt.
func (f *File) DeleteComment(sheet, cell string) error
Lösche den Kommentar an der angegebenen Arbeitsblatt- und Zellkoordinate. Beispiel: Lösche den Kommentar in der Zelle Sheet1!$A$30
:
err := f.DeleteComment("Sheet1", "A30")