Excelize
Open Source Go-bibliotek til regneark
Læs, opret, flet og filtrer data i Excel XLSX / XLSM / XLTM regnearksfiler via Go API.
Excelize er et Open source rent Go-bibliotek, der giver funktionalitet til at læse og skrive Microsoft Excel XLSX / XLSM / XLTM regnearksfiler. Udviklere kan læse og skrive regnearksdokumenter genereret af Microsoft Excel™ 2007 og senere i deres egne applikationer. Biblioteket er meget brugervenligt og understøtter læsning af store regnearksfiler. Det har leveret en streaming API til at generere eller læse data fra et regneark med enorme mængder data.
Biblioteket understøtter fuldt ud adskillige vigtige funktioner relateret til manipulation og behandling af Excel-regnearksfiler, såsom læsning og skrivning af Excel-filer, arbejde med celleområder, Excel-rækkestyring, tilføjelse af kommentarer, fletning af celler, kopiering af rækker, betinget formatering, indsæt tekster, administrer tabeller i Excel-filer, tilføje billeder, tilføje nye ark og mange flere.
Kom godt i gang med Excelize
Den anbefalede måde at installere Excelize på er fra GitHub, brug venligst følgende kommando for hurtigere installation.
Installer via GitHub Command
go get github.com/360EntSecGroup-Skylar/excelize
Generer Excel XLSX-fil via Go Library
Excelize gør det muligt for programmører at generere et Excel XLSX-regneark i deres egne Go-applikationer. Når du har oprettet arket, kan du også oprette et nyt ark, indstille værdien af en celle, definere antallet af rækker og kolonner, angive et aktivt ark i projektmappen og mere. Du kan også tildele et navn til et ark og gemme filen på stien efter eget valg, indstille skrifttype og tekststørrelse for et oprettet ark.
Opret Excel XLSX-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)
}
}
Indsæt diagram til en XLSX-fil
Excel-diagrammer er visuelle repræsentationer af data fra et regneark, der kan formidle mere forståelse af dataene ved at opsummere store mængder data i et lille afsnit af dit regneark. Diagrammer giver brugerne mulighed for visuelt at vise data i forskellige formater såsom søjle, kolonne, cirkel, linje, område eller radar osv. Excelize-biblioteket understøtter diagramgenerering samt kontrol med blot et par linjer kode i dine egne applikationer. Det giver mulighed for at bygge diagrammer baseret på data i et regneark eller generere diagrammer uden nogen data.
Tilføj diagram til Excel-regnearkfil 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)
}
}
Oprettelse af pivottabel i Excel-fil
Excelize giver mulighed for nemt at oprette en pivottabel i et Excel-regneark. Pivottabeller er en af de mest kraftfulde funktioner i Microsoft Excel. Det er et kraftfuldt værktøj til at beregne, opsummere og analysere dine data i et Excel-ark. Du kan oprette en simpel pivottabel ved at bruge AddPivotTable-funktionen. Desuden kan du nemt tildele eller redigere datakilde til en pivottabel.
Generer pivottabel i Excel-fil i 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)
}
}
Tilføj billeder til XLSX-regneark
Excelize-biblioteket giver funktionalitet til at tilføje billeder til et Excel XLSX-regneark med blot et par linjer med Go-kommandoer. Du kan også ændre billeder efter dine behov. Du kan indsætte et billede med skalering såvel som med printstøtte.
Tilføj billede til Excel-regnearkfil 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)
}
}