Excelize
Бібліотека Go з відкритим кодом для електронних таблиць
Читайте, створюйте, об’єднуйте та фільтруйте дані у файлах електронних таблиць Excel XLSX / XLSM / XLTM за допомогою Go API.
Excelize — це чиста бібліотека Go з відкритим вихідним кодом, яка забезпечує функції для читання та запису файлів електронних таблиць Microsoft Excel XLSX / XLSM / XLTM. Розробники можуть читати та писати документи електронних таблиць, згенеровані Microsoft Excel™ 2007 і пізнішими версіями, у своїх власних програмах. Бібліотека дуже зручна і підтримує читання великих файлів електронних таблиць. Він надав потоковий API для генерації або читання даних із робочого аркуша з величезною кількістю даних.
Бібліотека повністю підтримує кілька важливих функцій, пов’язаних із маніпулюванням і обробкою файлів електронних таблиць Excel, наприклад читання та запис файлів Excel, робота з діапазонами комірок, керування рядками Excel, додавання коментарів, об’єднання комірок, копіювання рядків, умовне форматування, вставка текстів, керування таблицями у файлах Excel, додавати зображення, нові аркуші та багато іншого.
Початок роботи з Excelize
Рекомендований спосіб інсталяції Excelize – з GitHub, скористайтеся наступною командою для швидшої інсталяції.
Встановити за допомогою команди GitHub
go get github.com/360EntSecGroup-Skylar/excelize
Створіть файл Excel XLSX за допомогою бібліотеки Go
Excelize дозволяє програмістам створювати електронну таблицю Excel XLSX у власних програмах Go. Після створення аркуша ви також можете створити новий аркуш, встановити значення комірки, визначити кількість рядків і стовпців, встановити активний аркуш робочої книги тощо. Ви також можете призначити ім’я аркушу та зберегти файл у вибраному вами шляху, встановити тип шрифту та розмір тексту для створеного аркуша.
Створіть файл Excel XLSX за допомогою 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)
}
}
Вставте діаграму у файл XLSX
Діаграми Excel — це візуальне представлення даних із робочого аркуша, яке може передати краще розуміння даних, узагальнюючи великі обсяги даних у невеликій частині аркуша. Діаграми дозволяють користувачам візуально відображати дані в різних форматах, таких як стовпчики, стовпці, сектори, лінії, площі або радар тощо. Бібліотека Excelize підтримує створення діаграм, а також керування за допомогою лише кількох рядків коду у ваших власних програмах. Це дозволяє створювати діаграми на основі даних на аркуші або генерувати діаграми без будь-яких даних.
Додати діаграму в файл Spreadsheet Excel через 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)
}
}
Створення зведеної таблиці у файлі Excel
Excelize забезпечує можливість легкого створення зведеної таблиці в електронній таблиці Excel. Зведені таблиці є однією з найпотужніших функцій Microsoft Excel. Це потужний інструмент для обчислення, узагальнення та аналізу ваших даних у таблиці Excel. Ви можете створити просту зведену таблицю за допомогою функції AddPivotTable. Крім того, ви можете легко призначити або редагувати джерело даних для зведеної таблиці.
Generate PivotTable в Excel файл всередині 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)
}
}
Додайте зображення до електронних таблиць XLSX
Бібліотека Excelize надає функціональність для додавання зображень до електронної таблиці Excel XLSX за допомогою лише кількох рядків команд Go. Ви також можете змінювати зображення відповідно до своїх потреб. Ви можете вставити зображення як з масштабуванням, так і з підтримкою друку.
Додати зображення в файл робочого аркуша Excel через 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)
}
}