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

Setzen Sie den Randstil für eine Zelle

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

Setzen Sie den Gradient-Stil für eine Zelle

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

Setzen Sie eine einfarbige Füllung für eine Zelle

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

Setzen von Zeichenabständen und Rotationswinkel

  • Beispiel 5: Daten und Uhrzeiten in Excel werden durch reale Zahlen dargestellt. Zum Beispiel kann 2017/7/4 12:00:00 PM durch die Zahl 42920.5 dargestellt werden. Legen Sie das Zeitformat für die Zelle D7 im Arbeitsblatt mit dem Namen Tabelle1 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)

Setze Zeitformat für Zelle

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 Namen Tabelle1 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)

Setze Schriftart, Schriftgröße, Farbe und Kursivstil für Zelle

  • Beispiel 7: Sperren und Verstecken Sie die Zelle D7 im Arbeitsblatt mit dem Namen Tabelle1:
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 Namen Tabelle1 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 Namen Tabelle1 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:

![Rich-Text-Format festlegen](/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("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:

Füge einen Kommentar in einem Excel-Dokument 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")