Excelize
Biblioteka Open Source Go dla arkuszy kalkulacyjnych
Odczytuj, twórz, łącz i filtruj dane w plikach arkuszy kalkulacyjnych Excel XLSX / XLSM / XLTM za pośrednictwem interfejsu API Go.
Excelize to czysta biblioteka Go o otwartym kodzie źródłowym, która zapewnia funkcjonalność do czytania i zapisywania plików arkuszy kalkulacyjnych Microsoft Excel XLSX / XLSM / XLTM. Programiści mogą odczytywać i zapisywać dokumenty arkuszy kalkulacyjnych wygenerowane przez program Microsoft Excel™ 2007 i nowsze we własnych aplikacjach. Biblioteka jest bardzo przyjazna dla użytkownika i obsługuje odczytywanie dużych plików arkuszy kalkulacyjnych. Udostępnił interfejs API przesyłania strumieniowego do generowania lub odczytywania danych z arkusza roboczego z ogromnymi ilościami danych.
Biblioteka w pełni obsługuje kilka ważnych funkcji związanych z manipulacją i przetwarzaniem plików arkuszy Excel, takich jak odczytywanie i zapisywanie plików Excela, praca z zakresami komórek, zarządzanie wierszami Excela, dodawanie komentarzy, scalanie komórek, kopiowanie wierszy, formatowanie warunkowe, wstawianie tekstów, zarządzanie tabelami w plikach Excel, dodawaj obrazy, dodawaj nowe arkusze i wiele więcej.
Pierwsze kroki z Excelize
Zalecany sposób instalacji Excelize to GitHub, użyj następującego polecenia, aby przyspieszyć instalację.
Zainstaluj za pomocą polecenia GitHub
go get github.com/360EntSecGroup-Skylar/excelize
Generuj plik Excel XLSX za pomocą biblioteki Go
Excelize umożliwia programistom generowanie arkusza kalkulacyjnego Excel XLSX we własnych aplikacjach Go. Po utworzeniu arkusza możesz również utworzyć nowy arkusz, ustawić wartość komórki, zdefiniować liczbę wierszy i kolumn, ustawić aktywny arkusz skoroszytu i nie tylko. Możesz także nadać arkuszowi nazwę i zapisać plik pod wybraną ścieżką, ustawić typ czcionki i rozmiar tekstu dla tworzonego arkusza.
Tworzenie pliku Excel LS przez 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)
}
}
Wstaw wykres do pliku XLSX
Wykresy programu Excel to wizualna reprezentacja danych z arkusza, która pozwala lepiej zrozumieć dane, podsumowując duże ilości danych w niewielkiej części arkusza. Wykresy umożliwiają użytkownikom wizualne wyświetlanie danych w różnych formatach, takich jak słupki, kolumny, koła, linie, obszary lub radary itp. Biblioteka Excelize obsługuje generowanie wykresów, a także kontrolę za pomocą zaledwie kilku wierszy kodu we własnych aplikacjach. Umożliwia budowanie wykresów na podstawie danych w arkuszu lub generowanie wykresów bez żadnych danych.
Dodaj grę Excel Spreadsheet File przez 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)
}
}
Tworzenie tabeli przestawnej w pliku Excel
Excelize zapewnia możliwość łatwego tworzenia tabeli przestawnej w arkuszu kalkulacyjnym Excel. Tabele przestawne to jedna z najpotężniejszych funkcji programu Microsoft Excel. Jest to potężne narzędzie do obliczania, podsumowywania i analizowania danych w arkuszu Excela. Prostą tabelę przestawną można utworzyć za pomocą funkcji AddPivotTable. Co więcej, możesz łatwo przypisać lub edytować źródło danych do tabeli przestawnej.
Generować PivotTable w pliku Excel wewnątrz aplikacji 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)
}
}
Dodaj obrazy do arkuszy kalkulacyjnych XLSX
Biblioteka Excelize zapewnia funkcję dodawania obrazów do arkusza kalkulacyjnego Excel XLSX za pomocą zaledwie kilku wierszy poleceń Go. Możesz także modyfikować obrazy zgodnie z własnymi potrzebami. Możesz wstawić zdjęcie ze skalowaniem, a także ze wsparciem drukowania.
Dodaj obraz do pliku arkusza Excel przez 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)
}
}