Excelize
Atvirojo kodo Go biblioteka skaičiuoklėms
Skaitykite, kurkite, sujunkite ir filtruokite duomenis Excel XLSX / XLSM / XLTM skaičiuoklės failuose naudodami Go API.
„Excelize“ yra atvirojo kodo grynojo „Go“ biblioteka, teikianti „Microsoft Excel“ XLSX / XLSM / XLTM skaičiuoklės failų skaitymo ir rašymo funkcijas. Kūrėjai gali skaityti ir rašyti skaičiuoklių dokumentus, sugeneruotus Microsoft Excel™ 2007 ir vėlesnėmis programomis. Biblioteka yra labai patogi ir palaiko didelių skaičiuoklių failų skaitymą. Ji suteikė srautinio perdavimo API, skirtą duomenims generuoti arba skaityti iš darbalapio, kuriame yra didžiulis duomenų kiekis.
Biblioteka visiškai palaiko keletą svarbių funkcijų, susijusių su „Excel“ skaičiuoklės failų apdorojimu ir apdorojimu, pvz., „Excel“ failų skaitymas ir rašymas, darbas su langelių diapazonais, „Excel“ eilučių valdymas, komentarų pridėjimas, langelių sujungimas, eilučių kopijavimas, sąlyginis formatavimas, tekstų įterpimas, lentelių tvarkymas. „Excel“ failuose, pridėkite vaizdų, pridėkite naujų lapų ir dar daugiau.
Darbo su Excelize pradžia
Rekomenduojamas „Excelize“ diegimo būdas yra „GitHub“. Norėdami greičiau įdiegti, naudokite šią komandą.
Įdiekite per „GitHub Command“.
go get github.com/360EntSecGroup-Skylar/excelize
Sukurkite „Excel XLSX“ failą naudodami „Go Library“.
„Excelize“ leidžia programuotojams sukurti „Excel XLSX“ skaičiuoklę savo „Go“ programose. Sukūrę lapą taip pat galite sukurti naują lapą, nustatyti langelio reikšmę, apibrėžti eilučių ir stulpelių skaičių, Nustatyti aktyvų darbaknygės lapą ir kt. Taip pat galite priskirti lapui pavadinimą ir išsaugoti failą pasirinktu keliu, nustatyti sukurto lapo šrifto tipą ir teksto dydį.
Sukurkite „Excel XLSX“ failą naudodami „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)
}
}
Įdėkite diagramą į XLSX failą
„Excel“ diagramos yra vaizdiniai darbalapio duomenų atvaizdai, kurie gali suteikti daugiau supratimo apie duomenis apibendrinant didelius duomenų kiekius nedidelėje darbalapio dalyje. Diagramos leidžia vartotojams vizualiai rodyti duomenis įvairiais formatais, tokiais kaip juosta, stulpelis, stulpelis, linija, sritis arba radaras ir tt Excelize biblioteka palaiko diagramų generavimą ir valdymą tik keliomis kodo eilutėmis jūsų programose. Tai leidžia kurti diagramas pagal duomenis darbalapyje arba generuoti diagramas be jokių duomenų.
Pridėkite diagramą prie „Excel“ skaičiuoklės failo naudodami „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)
}
}
„PivotTable“ kūrimas „Excel“ faile
„Excelize“ suteikia galimybę lengvai sukurti „Excel“ skaičiuoklėje esančią suvestinę lentelę. Suvestinės lentelės yra viena iš galingiausių „Microsoft Excel“ funkcijų. Tai galingas įrankis skaičiuoti, apibendrinti ir analizuoti duomenis Excel lape. Galite sukurti paprastą suvestinę lentelę naudodami funkciją AddPivotTable. Be to, suvestinei lentelei galite lengvai priskirti arba redaguoti duomenų šaltinį.
Generuokite „PivotTable“ „Excel“ faile „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)
}
}
Pridėkite vaizdus į XLSX skaičiuokles
„Excelize“ biblioteka suteikia funkcijų, leidžiančių pridėti vaizdus į „Excel XLSX“ skaičiuoklę, naudojant tik keletą eilučių komandų „Go“. Taip pat galite keisti vaizdus pagal savo poreikius. Galite įterpti paveikslėlį su mastelio keitimu ir spausdinimo palaikymu.
Pridėkite vaizdą prie „Excel“ darbalapio failo naudodami „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)
}
}