1. Produkte
  2.   Kalkulationstabelle
  3.   GO
  4.   Excelize  

Excelize  

 
 

Open-Source-Go-Bibliothek für Tabellenkalkulationen

Daten in Excel XLSX-/XLSM-/XLTM-Tabellendateien über die Go-API lesen, erstellen, zusammenführen und filtern.

Excelize ist eine reine Open-Source-Go-Bibliothek, die Funktionen zum Lesen und Schreiben von Microsoft Excel XLSX / XLSM / XLTM-Tabellenkalkulationsdateien bietet. Entwickler können von Microsoft Excel™ 2007 und höher generierte Tabellenkalkulationsdokumente in ihren eigenen Anwendungen lesen und schreiben. Die Bibliothek ist sehr benutzerfreundlich und unterstützt das Lesen großer Tabellenkalkulationsdateien. Es hat eine Streaming-API zum Generieren oder Lesen von Daten aus einem Arbeitsblatt mit riesigen Datenmengen bereitgestellt.

Die Bibliothek unterstützt mehrere wichtige Funktionen im Zusammenhang mit der Bearbeitung und Verarbeitung von Excel-Tabellendateien vollständig, z. B. Lesen und Schreiben von Excel-Dateien, Arbeiten mit Zellbereichen, Excel-Zeilenverwaltung, Hinzufügen von Kommentaren, Zusammenführen von Zellen, Kopieren von Zeilen, bedingte Formatierung, Einfügen von Texten, Verwalten von Tabellen in Excel-Dateien, fügen Sie Bilder hinzu, fügen Sie neue Blätter hinzu und vieles mehr.

Previous Next

Erste Schritte mit Excelize

Der empfohlene Weg, Excelize zu installieren ist von GitHub, verwenden Sie bitte den folgenden Befehl für eine schnellere Installation.

Installieren Sie über den GitHub-Befehl

 go get github.com/360EntSecGroup-Skylar/excelize 

Generieren Sie eine Excel XLSX-Datei über die Go-Bibliothek

Mit Excelize können Programmierer eine Excel-XLSX-Tabelle in ihren eigenen Go-Anwendungen erstellen. Nachdem Sie das Blatt erstellt haben, können Sie auch ein neues Blatt erstellen, den Wert einer Zelle festlegen, die Anzahl der Zeilen und Spalten definieren, ein aktives Blatt der Arbeitsmappe festlegen und vieles mehr. Sie können einem Blatt auch einen Namen zuweisen und die Datei unter dem Pfad Ihrer Wahl speichern, Schriftart und Textgröße für ein erstelltes Blatt festlegen. 

Create Excel LS File via Go API

package main
import (
    "fmt"
    "github.com/xuri/excelize/v2"
)
func main() {
    f := excelize.NewFile()
    // Create a new sheet.
    index := f.NewSheet("Sheet2")
    // Set value of a cell.
    f.SetCellValue("Sheet2", "A2", "Hello world.")
    f.SetCellValue("Sheet1", "B2", 100)
    // Set active sheet of the workbook.
    f.SetActiveSheet(index)
    // Save spreadsheet by the given path.
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }
}

Diagramm in eine XLSX-Datei einfügen

Excel-Diagramme sind visuelle Darstellungen von Daten aus einem Arbeitsblatt, die ein besseres Verständnis der Daten vermitteln können, indem große Datenmengen in einem kleinen Abschnitt Ihres Arbeitsblatts zusammengefasst werden. Diagramme ermöglichen es Benutzern, Daten in verschiedenen Formaten wie Balken, Säulen, Kreisen, Linien, Flächen oder Radar usw. visuell anzuzeigen. Die Excelize-Bibliothek unterstützt die Diagrammerstellung sowie die Steuerung mit nur wenigen Codezeilen in Ihren eigenen Anwendungen. Es ermöglicht das Erstellen von Diagrammen basierend auf Daten in einem Arbeitsblatt oder das Erstellen von Diagrammen ohne Daten.

Fügen Sie Chart zu Excel Spreadsheet File via Go API

package main
import (
    "fmt"
    "github.com/xuri/excelize/v2"
)
func main() {
    categories := map[string]string{
        "A2": "Small", "A3": "Normal", "A4": "Large",
        "B1": "Apple", "C1": "Orange", "D1": "Pear"}
    values := map[string]int{
        "B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8}
    f := excelize.NewFile()
    for k, v := range categories {
        f.SetCellValue("Sheet1", k, v)
    }
    for k, v := range values {
        f.SetCellValue("Sheet1", k, v)
    }
    if err := f.AddChart("Sheet1", "E1", `{
        "type": "col3DClustered",
        "series": [
        {
            "name": "Sheet1!$A$2",
            "categories": "Sheet1!$B$1:$D$1",
            "values": "Sheet1!$B$2:$D$2"
        },
        {
            "name": "Sheet1!$A$3",
            "categories": "Sheet1!$B$1:$D$1",
            "values": "Sheet1!$B$3:$D$3"
        },
        {
            "name": "Sheet1!$A$4",
            "categories": "Sheet1!$B$1:$D$1",
            "values": "Sheet1!$B$4:$D$4"
        }],
        "title":
        {
            "name": "Fruit 3D Clustered Column Chart"
        }
    }`); err != nil {
        fmt.Println(err)
        return
    }
    // Save spreadsheet by the given path.
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }
}

Erstellen einer PivotTable in einer Excel-Datei

Excelize bietet die Möglichkeit, mühelos eine Pivot-Tabelle in einer Excel-Tabelle zu erstellen. Pivot-Tabellen sind eine der leistungsstärksten Funktionen von Microsoft Excel. Es ist ein leistungsstarkes Tool zum Berechnen, Zusammenfassen und Analysieren Ihrer Daten in einer Excel-Tabelle. Sie können eine einfache Pivot-Tabelle erstellen, indem Sie die AddPivotTable-Funktion verwenden. Darüber hinaus können Sie einer Pivot-Tabelle ganz einfach Datenquellen zuweisen oder bearbeiten.

Generieren Sie PivotTable in Excel-Datei in Go-Apps

func main() {
    f := excelize.NewFile()
    // Create some data in a sheet
    month := []string{"Jan", "Feb", "Mar", "Apr", "May",
        "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
    year := []int{2017, 2018, 2019}
    types := []string{"Meat", "Dairy", "Beverages", "Produce"}
    region := []string{"East", "West", "North", "South"}
    f.SetSheetRow("Sheet1", "A1", &[]string{"Month", "Year", "Type", "Sales", "Region"})
    for row := 2; row < 32; row++ {
        f.SetCellValue("Sheet1", fmt.Sprintf("A%d", row), month[rand.Intn(12)])
        f.SetCellValue("Sheet1", fmt.Sprintf("B%d", row), year[rand.Intn(3)])
        f.SetCellValue("Sheet1", fmt.Sprintf("C%d", row), types[rand.Intn(4)])
        f.SetCellValue("Sheet1", fmt.Sprintf("D%d", row), rand.Intn(5000))
        f.SetCellValue("Sheet1", fmt.Sprintf("E%d", row), region[rand.Intn(4)])
    }
    if err := f.AddPivotTable(&excelize.PivotTableOptions{
        DataRange:       "Sheet1!$A$1:$E$31",
        PivotTableRange: "Sheet1!$G$2:$M$34",
        Rows: []excelize.PivotTableField{
            {Data: "Month", DefaultSubtotal: true}, {Data: "Year"}},
        Filter: []excelize.PivotTableField{
            {Data: "Region"}},
        Columns: []excelize.PivotTableField{
            {Data: "Type", DefaultSubtotal: true}},
        Data: []excelize.PivotTableField{
            {Data: "Sales", Name: "Summarize", Subtotal: "Sum"}},
        RowGrandTotals: true,
        ColGrandTotals: true,
        ShowDrill:      true,
        ShowRowHeaders: true,
        ShowColHeaders: true,
        ShowLastColumn: true,
    }); err != nil {
        fmt.Println(err)
    }
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }
}

Bilder zu XLSX-Tabellen hinzufügen

Die Excelize-Bibliothek bietet Funktionen zum Hinzufügen von Bildern zu einer Excel-XLSX-Tabelle mit nur ein paar Zeilen Go-Befehlen. Sie können Bilder auch nach Ihren Wünschen ändern. Sie können ein Bild sowohl mit Skalierung als auch mit Druckunterstützung einfügen.

Fügen Sie Image zu Excel Worksheet File via Go API.

package main
import (
    "fmt"
    _ "image/gif"
    _ "image/jpeg"
    _ "image/png"
    "github.com/xuri/excelize/v2"
)
func main() {
    f, err := excelize.OpenFile("Book1.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func() {
        // Close the spreadsheet.
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    // Insert a picture.
    if err := f.AddPicture("Sheet1", "A2", "image.png", ""); err != nil {
        fmt.Println(err)
    }
    // Insert a picture to worksheet with scaling.
    if err := f.AddPicture("Sheet1", "D2", "image.jpg",
        `{"x_scale": 0.5, "y_scale": 0.5}`); err != nil {
        fmt.Println(err)
    }
    // Insert a picture offset in the cell with printing support.
    if err := f.AddPicture("Sheet1", "H2", "image.gif", `{
        "x_offset": 15,
        "y_offset": 10,
        "print_obj": true,
        "lock_aspect_ratio": false,
        "locked": false
    }`); err != nil {
        fmt.Println(err)
    }
    // Save the spreadsheet with the origin path.
    if err = f.Save(); err != nil {
        fmt.Println(err)
    }
}
 Deutsch