Excelize  

 
 

Open Source Go Library για υπολογιστικά φύλλα

Ανάγνωση, δημιουργία, συγχώνευση και φιλτράρισμα δεδομένων σε αρχεία υπολογιστικού φύλλου Excel XLSX / XLSM / XLTM μέσω του Go API.

Το Excelize είναι μια βιβλιοθήκη καθαρού Go ανοιχτού κώδικα που παρέχει λειτουργικότητα για ανάγνωση και εγγραφή αρχείων υπολογιστικού φύλλου Microsoft Excel XLSX / XLSM / XLTM. Οι προγραμματιστές μπορούν να διαβάζουν και να γράφουν έγγραφα υπολογιστικών φύλλων που δημιουργούνται από το Microsoft Excel™ 2007 και μεταγενέστερα μέσα στις δικές τους εφαρμογές. Η βιβλιοθήκη είναι πολύ φιλική προς το χρήστη και υποστηρίζει την ανάγνωση μεγάλων αρχείων υπολογιστικών φύλλων. Παρέχει ένα streaming API για τη δημιουργία ή την ανάγνωση δεδομένων από ένα φύλλο εργασίας με τεράστιες ποσότητες δεδομένων.

Η βιβλιοθήκη υποστηρίζει πλήρως αρκετές σημαντικές λειτουργίες που σχετίζονται με τον χειρισμό και την επεξεργασία αρχείων υπολογιστικών φύλλων Excel, όπως ανάγνωση και εγγραφή αρχείων Excel, εργασία με περιοχές κελιών, διαχείριση σειρών Excel, προσθήκη σχολίων, συγχώνευση κελιών, αντιγραφή σειρών, μορφοποίηση υπό όρους, εισαγωγή κειμένων, διαχείριση πινάκων σε αρχεία Excel, προσθέστε εικόνες, προσθέστε νέα φύλλα και πολλά άλλα.

Previous Next

Ξεκινώντας με το Excelize

Ο προτεινόμενος τρόπος εγκατάστασης του Excelize είναι από το GitHub, χρησιμοποιήστε την παρακάτω εντολή για ταχύτερη εγκατάσταση.

Εγκατάσταση μέσω  Εντολή GitHub

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

Δημιουργήστε αρχείο Excel XLSX μέσω Go Library

Το Excelize επιτρέπει στους προγραμματιστές να δημιουργήσουν ένα υπολογιστικό φύλλο Excel XLSX μέσα στις δικές τους εφαρμογές Go. Αφού δημιουργήσετε το φύλλο, μπορείτε επίσης να δημιουργήσετε ένα νέο φύλλο, να ορίσετε την τιμή ενός κελιού, να ορίσετε τον αριθμό των γραμμών και στηλών, να ορίσετε ένα ενεργό φύλλο του βιβλίου εργασίας και πολλά άλλα. Μπορείτε επίσης να αντιστοιχίσετε ένα όνομα σε ένα φύλλο και να αποθηκεύσετε το αρχείο στη διαδρομή της επιλογής σας, να ορίσετε τον τύπο γραμματοσειράς και το μέγεθος κειμένου για ένα φύλλο που δημιουργήθηκε. 

Δημιουργία αρχείου Excel LS μέσω του 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)
    }
}

Εισαγωγή γραφήματος σε αρχείο XLSX

Τα γραφήματα του Excel είναι οπτικές αναπαραστάσεις δεδομένων από ένα φύλλο εργασίας που μπορούν να μεταφέρουν περισσότερη κατανόηση των δεδομένων συνοψίζοντας μεγάλες ποσότητες δεδομένων σε ένα μικρό τμήμα του φύλλου εργασίας σας. Τα γραφήματα επιτρέπουν στους χρήστες να εμφανίζουν οπτικά δεδομένα σε διαφορετικές μορφές, όπως Bar, Column, Pie, Line, Area ή Radar κ.λπ. Η βιβλιοθήκη Excelize υποστηρίζει τη δημιουργία γραφημάτων καθώς και τον έλεγχο με λίγες μόνο γραμμές κώδικα μέσα στις δικές σας εφαρμογές. Επιτρέπει τη δημιουργία γραφημάτων με βάση δεδομένα σε ένα φύλλο εργασίας ή τη δημιουργία γραφημάτων χωρίς δεδομένα.

Προσθήκη εγγράφου στο Excel μέσω 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)
    }
}

Δημιουργία Συγκεντρωτικού Πίνακα σε Αρχείο Excel

Το Excelize παρέχει τη δυνατότητα δημιουργίας ενός συγκεντρωτικού πίνακα μέσα σε ένα υπολογιστικό φύλλο Excel με ευκολία. Οι συγκεντρωτικοί πίνακες είναι ένα από τα πιο ισχυρά χαρακτηριστικά του Microsoft Excel. Είναι ένα ισχυρό εργαλείο για τον υπολογισμό, τη σύνοψη και την ανάλυση των δεδομένων σας σε ένα φύλλο Excel. Μπορείτε να δημιουργήσετε έναν απλό συγκεντρωτικό πίνακα χρησιμοποιώντας τη συνάρτηση AddPivotTable. Επιπλέον, μπορείτε εύκολα να αντιστοιχίσετε ή να επεξεργαστείτε την πηγή δεδομένων σε έναν συγκεντρωτικό πίνακα.

Παραγωγή PivotTable στο Αρχείο Excel στο πλαίσιο εφαρμογών 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)
    }
}

Προσθήκη εικόνων σε υπολογιστικά φύλλα XLSX

Η βιβλιοθήκη Excelize παρέχει λειτουργικότητα για την προσθήκη εικόνων σε ένα υπολογιστικό φύλλο Excel XLSX με μερικές μόνο γραμμές εντολών Go. Μπορείτε επίσης να τροποποιήσετε τις εικόνες σύμφωνα με τις ανάγκες σας. Μπορείτε να εισαγάγετε μια εικόνα με κλιμάκωση καθώς και με υποστήριξη εκτύπωσης.

Προσθήκη εικόνας στο αρχείο φύλλου εργασίας του Excel μέσω 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)
    }
}
 Ελληνικά