Excelize
Open Source Go Library for Spreadsheets
Läs, skapa, sammanfoga och filtrera data i Excel XLSX / XLSM / XLTM kalkylbladsfiler via Go API.
Excelize är ett rent Go-bibliotek med öppen källkod som ger funktionalitet för att läsa och skriva Microsoft Excel XLSX / XLSM / XLTM kalkylbladsfiler. Utvecklare kan läsa och skriva kalkylbladsdokument som genererats av Microsoft Excel™ 2007 och senare i sina egna applikationer. Biblioteket är mycket användarvänligt och stöder läsning av stora kalkylbladsfiler. Det har tillhandahållit ett strömmande API för att generera eller läsa data från ett kalkylblad med enorma mängder data.
Biblioteket stöder fullt ut flera viktiga funktioner relaterade till manipulering och bearbetning av Excel-kalkylbladsfiler, som att läsa och skriva Excel-filer, arbeta med cellintervall, Excel-radhantering, lägga till kommentarer, slå samman celler, kopiera rader, villkorlig formatering, infoga texter, hantera tabeller i Excel-filer, lägg till bilder, lägg till nya ark och många fler.
Komma igång med Excelize
Det rekommenderade sättet att installera Excelize är från GitHub, använd följande kommando för snabbare installation.
Installera via GitHub Command
go get github.com/360EntSecGroup-Skylar/excelize
Generera Excel XLSX-fil via Go Library
Excelize gör det möjligt för programmerare att skapa ett Excel XLSX-kalkylblad i sina egna Go-applikationer. När du har skapat arket kan du också skapa ett nytt ark, ställa in värdet på en cell, definiera antalet rader och kolumner, Ange ett aktivt ark i arbetsboken och mer. Du kan också tilldela ett namn till ett ark och spara filen på den sökväg du väljer, ange teckensnittstyp och textstorlek för ett skapat ark.
Skapa Excel LS-fil 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)
}
}
Infoga diagram till en XLSX-fil
Excel-diagram är visuella representationer av data från ett kalkylblad som kan förmedla mer förståelse för data genom att sammanfatta stora mängder data i en liten del av ditt kalkylblad. Diagram tillåter användare att visuellt visa data i olika format som stapel, kolumn, cirkel, linje, area eller radar, etc. Excelize-biblioteket stöder diagramgenerering och kontroll med bara några rader kod i dina egna applikationer. Det låter dig bygga diagram baserat på data i ett kalkylblad eller generera diagram utan några data.
Lägg till diagram till 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)
}
}
Skapa pivottabell i Excel-fil
Excelize ger möjlighet att enkelt skapa en pivottabell i ett Excel-kalkylblad. Pivottabeller är en av de mest kraftfulla funktionerna i Microsoft Excel. Det är ett kraftfullt verktyg för att beräkna, sammanfatta och analysera dina data i ett Excel-ark. Du kan skapa en enkel pivottabell genom att använda funktionen AddPivotTable. Dessutom kan du enkelt tilldela eller redigera datakälla till en pivottabell.
Generera PivotTable i Excel File inuti 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)
}
}
Lägg till bilder i XLSX-kalkylblad
Excelize-biblioteket tillhandahåller funktionalitet för att lägga till bilder i ett Excel XLSX-kalkylblad med bara ett par rader med Go-kommandon. Du kan också ändra bilder efter dina behov. Du kan infoga en bild med skalning såväl som med utskriftsstöd.
Lägg till bild till 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)
}
}