1. Produkty
  2.   Arkusz
  3.   GO
  4.   Excelize  

Excelize  

 
 

Biblioteka Open Source Go dla arkuszy kalkulacyjnych

Odczytuj, twórz, łącz i filtruj dane w plikach arkuszy kalkulacyjnych Excel XLSX / XLSM / XLTM za pośrednictwem interfejsu API Go.

Excelize to czysta biblioteka Go o otwartym kodzie źródłowym, która zapewnia funkcjonalność do czytania i zapisywania plików arkuszy kalkulacyjnych Microsoft Excel XLSX / XLSM / XLTM. Programiści mogą odczytywać i zapisywać dokumenty arkuszy kalkulacyjnych wygenerowane przez program Microsoft Excel™ 2007 i nowsze we własnych aplikacjach. Biblioteka jest bardzo przyjazna dla użytkownika i obsługuje odczytywanie dużych plików arkuszy kalkulacyjnych. Udostępnił interfejs API przesyłania strumieniowego do generowania lub odczytywania danych z arkusza roboczego z ogromnymi ilościami danych.

Biblioteka w pełni obsługuje kilka ważnych funkcji związanych z manipulacją i przetwarzaniem plików arkuszy Excel, takich jak odczytywanie i zapisywanie plików Excela, praca z zakresami komórek, zarządzanie wierszami Excela, dodawanie komentarzy, scalanie komórek, kopiowanie wierszy, formatowanie warunkowe, wstawianie tekstów, zarządzanie tabelami w plikach Excel, dodawaj obrazy, dodawaj nowe arkusze i wiele więcej.

Previous Next

Pierwsze kroki z Excelize

Zalecany sposób instalacji Excelize to GitHub, użyj następującego polecenia, aby przyspieszyć instalację.

Zainstaluj za pomocą polecenia GitHub

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

Generuj plik Excel XLSX za pomocą biblioteki Go

Excelize umożliwia programistom generowanie arkusza kalkulacyjnego Excel XLSX we własnych aplikacjach Go. Po utworzeniu arkusza możesz również utworzyć nowy arkusz, ustawić wartość komórki, zdefiniować liczbę wierszy i kolumn, ustawić aktywny arkusz skoroszytu i nie tylko. Możesz także nadać arkuszowi nazwę i zapisać plik pod wybraną ścieżką, ustawić typ czcionki i rozmiar tekstu dla tworzonego arkusza. 

Tworzenie pliku Excel LS przez 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)
    }
}

Wstaw wykres do pliku XLSX

Wykresy programu Excel to wizualna reprezentacja danych z arkusza, która pozwala lepiej zrozumieć dane, podsumowując duże ilości danych w niewielkiej części arkusza. Wykresy umożliwiają użytkownikom wizualne wyświetlanie danych w różnych formatach, takich jak słupki, kolumny, koła, linie, obszary lub radary itp. Biblioteka Excelize obsługuje generowanie wykresów, a także kontrolę za pomocą zaledwie kilku wierszy kodu we własnych aplikacjach. Umożliwia budowanie wykresów na podstawie danych w arkuszu lub generowanie wykresów bez żadnych danych.

Dodaj grę Excel Spreadsheet File przez 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)
    }
}

Tworzenie tabeli przestawnej w pliku Excel

Excelize zapewnia możliwość łatwego tworzenia tabeli przestawnej w arkuszu kalkulacyjnym Excel. Tabele przestawne to jedna z najpotężniejszych funkcji programu Microsoft Excel. Jest to potężne narzędzie do obliczania, podsumowywania i analizowania danych w arkuszu Excela. Prostą tabelę przestawną można utworzyć za pomocą funkcji AddPivotTable. Co więcej, możesz łatwo przypisać lub edytować źródło danych do tabeli przestawnej.

Generować PivotTable w pliku Excel wewnątrz aplikacji Go

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

Dodaj obrazy do arkuszy kalkulacyjnych XLSX

Biblioteka Excelize zapewnia funkcję dodawania obrazów do arkusza kalkulacyjnego Excel XLSX za pomocą zaledwie kilku wierszy poleceń Go. Możesz także modyfikować obrazy zgodnie z własnymi potrzebami. Możesz wstawić zdjęcie ze skalowaniem, a także ze wsparciem drukowania.

Dodaj obraz do pliku arkusza Excel przez 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)
    }
}
 Polski