Excelize
Libreria Go Open Source per fogli di calcolo
Leggi, crea, unisci e filtra i dati nei file di fogli di lavoro XLSX / XLSM / XLTM di Excel tramite l'API Go.
Excelize è una libreria Go pura open source che fornisce funzionalità per leggere e scrivere file di fogli di calcolo Microsoft Excel XLSX / XLSM / XLTM. Gli sviluppatori possono leggere e scrivere fogli di calcolo generati da Microsoft Excel™ 2007 e versioni successive all'interno delle proprie applicazioni. La libreria è molto intuitiva e supporta la lettura di fogli di calcolo di grandi dimensioni. Ha fornito un'API di streaming per generare o leggere dati da un foglio di lavoro con enormi quantità di dati.
La libreria supporta completamente diverse importanti funzionalità relative alla manipolazione e all'elaborazione di file di fogli di calcolo Excel, come la lettura e la scrittura di file Excel, il lavoro con intervalli di celle, la gestione delle righe di Excel, l'aggiunta di commenti, l'unione di celle, la copia di righe, la formattazione condizionale, l'inserimento di testi, la gestione di tabelle in file Excel, aggiungi immagini, aggiungi nuovi fogli e molto altro.
Iniziare con Excelize
Il modo consigliato per installare Excelize è da GitHub, utilizzare il comando seguente per un'installazione più rapida.
Installa tramite comando GitHub
go get github.com/360EntSecGroup-Skylar/excelize
Genera file XLSX di Excel tramite Go Library
Excelize consente ai programmatori di generare un foglio di calcolo Excel XLSX all'interno delle proprie applicazioni Go. Una volta creato il foglio puoi anche creare un nuovo foglio, impostare il valore di una cella, definire il numero di righe e colonne, impostare un foglio attivo della cartella di lavoro e altro ancora. Puoi anche assegnare un nome a un foglio e salvare il file nel percorso che preferisci, impostare il tipo di carattere e la dimensione del testo per un foglio creato.
Crea file Excel LS 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)
}
}
Inserisci grafico in un file XLSX
I grafici Excel sono rappresentazioni visive dei dati di un foglio di lavoro che possono trasmettere una maggiore comprensione dei dati riassumendo grandi quantità di dati all'interno di una piccola sezione del foglio di lavoro. I grafici consentono agli utenti di visualizzare visivamente i dati in diversi formati come barra, colonna, torta, linea, area o radar, ecc. La libreria Excelize supporta la generazione di grafici e il controllo con poche righe di codice all'interno delle proprie applicazioni. Consente di creare grafici basati sui dati in un foglio di lavoro o di generare grafici senza dati.
Aggiungi cartella al file Excel 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)
}
}
Creazione di una tabella pivot in un file Excel
Excelize offre la possibilità di creare facilmente una tabella pivot all'interno di un foglio di calcolo Excel. Le tabelle pivot sono una delle funzionalità più potenti di Microsoft Excel. È un potente strumento per calcolare, riassumere e analizzare i tuoi dati in un foglio Excel. È possibile creare una semplice tabella pivot usando la funzione AddPivotTable. Inoltre, puoi facilmente assegnare o modificare l'origine dati a una tabella pivot.
Generare PivotTable in Excel File all'interno di 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)
}
}
Aggiungi immagini ai fogli di calcolo XLSX
La libreria Excelize fornisce funzionalità per aggiungere immagini a un foglio di calcolo Excel XLSX con solo un paio di righe di comandi Vai. Puoi anche modificare le immagini in base alle tue esigenze. È possibile inserire un'immagine sia con ridimensionamento che con supporto per la stampa.
Aggiungi immagine al file di foglio di lavoro Excel 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)
}
}