Excelize
Open Source Go Library for Spreadsheets
Čtení, vytváření, slučování a filtrování dat v souborech tabulek Excel XLSX / XLSM / XLTM prostřednictvím rozhraní Go API.
Excelize je knihovna Open source čistě Go, která poskytuje funkce pro čtení a zápis souborů tabulek Microsoft Excel XLSX / XLSM / XLTM. Vývojáři mohou číst a zapisovat tabulkové dokumenty generované aplikací Microsoft Excel™ 2007 a novějšími ve svých vlastních aplikacích. Knihovna je uživatelsky velmi přívětivá a podporuje čtení velkých tabulkových souborů. Poskytuje streamovací API pro generování nebo čtení dat z listu s obrovským množstvím dat.
Knihovna plně podporuje několik důležitých funkcí souvisejících s manipulací a zpracováním souborů Excel, jako je čtení a zápis souborů Excel, práce s rozsahy buněk, správa řádků Excelu, přidávání komentářů, slučování buněk, kopírování řádků, podmíněné formátování, vkládání textů, správa tabulek v souborech Excel přidávejte obrázky, přidávejte nové listy a mnoho dalších.
Začínáme s Excelize
Doporučený způsob instalace Excelize je z GitHubu, pro rychlejší instalaci použijte prosím následující příkaz.
Nainstalujte pomocí příkazu GitHub
go get github.com/360EntSecGroup-Skylar/excelize
Vygenerujte soubor Excel XLSX pomocí knihovny Go
Excelize umožňuje programátorům generovat Excel XLSX tabulky ve vlastních aplikacích Go. Po vytvoření listu můžete také vytvořit nový list, nastavit hodnotu buňky, definovat počet řádků a sloupců, nastavit aktivní list sešitu a další. Můžete také přiřadit název listu a uložit soubor do zvolené cesty, nastavit typ písma a velikost textu pro vytvořený list.
Vytvořit soubor Excel LS přes 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)
}
}
Vložte graf do souboru XLSX
Grafy Excel jsou vizuální reprezentace dat z listu, které mohou zprostředkovat lepší porozumění datům shrnutím velkého množství dat v malé části listu. Grafy umožňují uživatelům vizuálně zobrazovat data v různých formátech, jako je sloupec, sloupec, koláč, čára, plocha nebo radar atd. Knihovna Excelize podporuje generování grafů a také ovládání pomocí několika řádků kódu ve vašich vlastních aplikacích. Umožňuje vytvářet grafy založené na datech v listu nebo generovat grafy bez jakýchkoli dat.
Přidat graf do souboru Excel Spreadsheet přes 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)
}
}
Vytvoření kontingenční tabulky v souboru aplikace Excel
Excelize poskytuje možnost snadného vytváření kontingenční tabulky v excelové tabulce. Kontingenční tabulky jsou jednou z nejvýkonnějších funkcí aplikace Microsoft Excel. Je to mocný nástroj pro výpočet, shrnutí a analýzu vašich dat v excelovém listu. Pomocí funkce AddPivotTable můžete vytvořit jednoduchou kontingenční tabulku. Kromě toho můžete snadno přiřadit nebo upravit zdroj dat kontingenční tabulce.
Generovat PivotTable v aplikaci Excel uvnitř aplikace Go
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)
}
}
Přidejte obrázky do tabulek XLSX
Knihovna Excelize poskytuje funkce pro přidávání obrázků do tabulky Excel XLSX pomocí několika řádků příkazů Go. Obrázky můžete také upravit podle svých potřeb. Můžete vložit obrázek se změnou měřítka i s podporou tisku.
Přidat obrázek do souboru Excel Worksheet pomocí 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)
}
}