Excelize
Open Source Go-bibliotheek voor spreadsheets
Gegevens lezen, maken, samenvoegen en filteren in Excel XLSX / XLSM / XLTM-spreadsheetbestanden via Go API.
Excelize is een open source pure Go-bibliotheek die functionaliteit biedt voor het lezen en schrijven van Microsoft Excel XLSX / XLSM / XLTM-spreadsheetbestanden. Ontwikkelaars kunnen spreadsheetdocumenten die zijn gegenereerd door Microsoft Excel™ 2007 en later in hun eigen toepassingen lezen en schrijven. De bibliotheek is zeer gebruiksvriendelijk en ondersteunt het lezen van grote spreadsheetbestanden. Het heeft een streaming-API geleverd voor het genereren of lezen van gegevens uit een werkblad met enorme hoeveelheden gegevens.
De bibliotheek ondersteunt verschillende belangrijke functies met betrekking tot het manipuleren en verwerken van Excel-spreadsheetbestanden, zoals het lezen en schrijven van Excel-bestanden, werken met celbereiken, Excel-rijenbeheer, opmerkingen toevoegen, cellen samenvoegen, rijen kopiëren, voorwaardelijke opmaak, teksten invoegen, tabellen beheren in Excel-bestanden, afbeeldingen toevoegen, nieuwe bladen toevoegen en nog veel meer.
Aan de slag met Excelize
De aanbevolen manier om Excelize te installeren is vanaf GitHub. Gebruik de volgende opdracht voor een snellere installatie.
Installeren via GitHub-opdracht
go get github.com/360EntSecGroup-Skylar/excelize
Genereer Excel XLSX-bestand via Go Library
Met Excelize kunnen programmeurs een Excel XLSX-spreadsheet genereren in hun eigen Go-applicaties. Nadat u het blad hebt gemaakt, kunt u ook een nieuw blad maken, de waarde van een cel instellen, het aantal rijen en kolommen definiëren, een actief blad van de werkmap instellen en meer. U kunt ook een naam aan een blad toewijzen en het bestand opslaan naar het pad van uw keuze, het lettertype en de tekstgrootte instellen voor een gemaakt blad.
Creëer 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)
}
}
Grafiek invoegen in een XLSX-bestand
Excel-diagrammen zijn visuele weergaven van gegevens uit een werkblad die meer inzicht in de gegevens kunnen geven door grote hoeveelheden gegevens samen te vatten in een klein gedeelte van uw werkblad. Met grafieken kunnen gebruikers gegevens visueel weergeven in verschillende indelingen, zoals staaf, kolom, cirkel, lijn, gebied of radar, enz. De Excelize-bibliotheek ondersteunt het genereren van grafieken en controle met slechts een paar regels code in uw eigen toepassingen. Hiermee kunnen grafieken worden gemaakt op basis van gegevens in een werkblad of grafieken worden gegenereerd zonder gegevens.
Voeg Chart toe aan 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)
}
}
Draaitabel maken in Excel-bestand
Excelize biedt de mogelijkheid om met gemak een draaitabel in een Excel-spreadsheet te maken. Draaitabellen zijn een van de krachtigste functies van Microsoft Excel. Het is een krachtig hulpmiddel om uw gegevens in een Excel-blad te berekenen, samen te vatten en te analyseren. U kunt een eenvoudige draaitabel maken met behulp van de functie AddPivotTable. Bovendien kunt u eenvoudig een gegevensbron aan een draaitabel toewijzen of bewerken.
Generaat PivotTable in Excel File in Go App
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)
}
}
Afbeeldingen toevoegen aan XLSX-spreadsheets
De Excelize-bibliotheek biedt functionaliteit voor het toevoegen van afbeeldingen aan een Excel XLSX-spreadsheet met slechts een paar regels Go-commando's. U kunt afbeeldingen ook aanpassen aan uw behoeften. U kunt een afbeelding invoegen met schalen en met afdrukondersteuning.
Voeg Image toe aan 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)
}
}