Бібліотека Go для роботи з документами Excel XLSX
Go API з відкритим кодом, який підтримує генерацію електронних таблиць Microsoft Excel XLSX, керування робочими аркушами, обробку рядків і стовпців у робочих аркушах через Go API.
Бібліотека xlsx забезпечує дуже швидкий і надійний спосіб роботи з файлами Microsoft Excel за допомогою Go. Бібліотека допомагає спростити читання та запис формату файлів Excel XLSX. Формат файлу XLSX був представлений у 2007 році та використовує стандарт Open XML, адаптований корпорацією Майкрософт у 2000 році. Бібліотека має відкритий код і доступна за ліцензією BSD-3-Clause.
Бібліотека xlsx із відкритим вихідним кодом включає підтримку кількох важливих функцій, пов’язаних зі створенням документів Microsoft Excel і маніпулюванням ними, наприклад створення нового файлу XlSX, відкриття існуючих файлів Excel, доступ до робочих аркушів, додавання нових робочих аркушів, керування рядками та стовпцями всередині робочого аркуша, додавання клітинки, отримання клітинки з рядка, форматування клітинок, застосування стилів до клітинок, підтримка іменованих діапазонів і багато іншого.
Початок роботи з Xlsx2Go
Рекомендований спосіб встановлення xlsx — з GitHub. Будь ласка, скористайтеся наступною командою для плавного встановлення.
Встановіть xlsx через GitHub
go get https://github.com/tealeg/xlsx.git
Створення НОВИХ файлів XLSX за допомогою бібліотеки Go
Бібліотека xlsx з відкритим кодом дає розробникам програмного забезпечення можливість створювати новий порожній файл XLSX з нуля за допомогою кількох команд Go. Розробники можуть використовувати нову функцію NewFile() для створення нового файлу. Після створення книги ви можете легко додати новий вміст до книги. Ви можете легко додати новий аркуш або додати наявний аркуш. Після створення та завершення роботи збережіть свою роботу, рекомендовано Close()the sheet.
Створити та редагувати файли Excel LS через Go API
// Demonstrates how to create/open/save XLSX files
func Example_files() {
// Create a new XLSX file
xl := xlsx.New()
// Open the XLSX file using file name
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
// Open the XLSX file using file handler
zipFile, err := os.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
xl, err = xlsx.Open(zipFile)
if err != nil {
log.Fatal(err)
}
// Update the existing XLSX file
err = xl.Save()
if err != nil {
log.Fatal(err)
}
// Save the XLSX file under different name
err = xl.SaveAs("new_file.xlsx")
if err != nil {
log.Fatal(err)
}
}
Доступ і читання файлів XLSX
Бібліотека xlsx із відкритим кодом надає набір функцій, які дозволяють розробникам відкривати та читати існуючий файл електронної таблиці XLSX у своїх власних програмах Go. Ви також можете легко отримати доступ до аркушів книги за допомогою лише кількох команд Go. Розробники також можуть легко отримати доступ до певного аркуша на свій вибір.
Доступ та читання файлів Excel через бібліотеку Go
func Example_access() {
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
// Get sheet by 0-based index
sheet := xl.Sheet(0)
// Get cell by 0-based indexes
cell := sheet.Cell(13, 27)
fmt.Println(cell.Value())
// Get cell by reference
cell = sheet.CellByRef("N28")
fmt.Println(cell.Value())
// Get row by 0-based index
row := sheet.Row(9)
fmt.Println(strings.Join(row.Values(), ","))
// Get cell of row at 0-based col index
cell = row.Cell(0)
fmt.Println(cell.Value())
// Get col by 0-based index
col := sheet.Col(3)
fmt.Println(strings.Join(col.Values(), ","))
// Get cell of col at 0-based row index
cell = col.Cell(0)
fmt.Println(cell.Value())
// Get range by references
area := sheet.RangeByRef("D10:H13")
fmt.Println(strings.Join(area.Values(), ","))
}
Обробка рядків і стовпців у робочих аркушах
Клітини є основою аркуша Excel. Робочий аркуш складається з комірок, організованих у рядки та стовпці. Бібліотека xlsx надає розробникам програмного забезпечення широкий спектр функцій для обробки рядків і стовпців у їхніх програмах за допомогою команд Go. Він підтримує додавання нових рядків і стовпців, ітерацію рядків і стовпців, видалення непотрібних рядків і стовпців, додавання нових клітинок до рядка, отримання значення з клітинки, застосування форматування до діапазону клітинок і багато іншого.
Вставити стовпці & Ross у робочому аркуші Excel через бібліотеку Go
func Example_insert() {
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
sheet := xl.Sheet(0)
fmt.Println(sheet.Dimension())
fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
// Insert a new col
sheet.InsertCol(3)
fmt.Println(sheet.Dimension())
fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
fmt.Println(strings.Join(sheet.Col(4).Values(), ","))
// Insert a new row
fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
sheet.InsertRow(3)
fmt.Println(sheet.Dimension())
fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
fmt.Println(strings.Join(sheet.Row(10).Values(), ","))
}
Застосувати стилі та форматування
Безкоштовна бібліотека xlsx надає кілька важливих функцій, які дозволяють розробникам програмного забезпечення легко застосовувати форматування та стилі до своїх електронних таблиць. Стилі забезпечують макет і оформлення комірок, як-от шрифт, колір, вирівнювання вмісту, розмір шрифту, заливку тощо. Ви можете легко застосувати стиль до діапазону комірок лише за допомогою кількох рядків коду. Вам просто потрібно створити стиль один раз і використовувати його повторно, коли це необхідно. Ви також можете застосувати формати чисел і дат для клітинок.
Застосувати стилі та форматування в файл Excel через бібліотеку Go
gfunc Example_formatting() {
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
// Create a new format for a bold font with red color and yellow solid background
redBold := styles.New(
styles.Font.Bold,
styles.Font.Color("#ff0000"),
styles.Fill.Background("#ffff00"),
styles.Fill.Type(styles.PatternTypeSolid),
)
// Add formatting to xlsx
styleID := xl.AddStyles(redBold)
sheet := xl.Sheet(0)
// Set formatting for cell
sheet.CellByRef("N28").SetStyles(styleID)
// Set DEFAULT formatting for row. Affects cells not yet allocated in the row.
// In other words, this style applies to new cells.
sheet.Row(9).SetStyles(styleID)
// Set DEFAULT formatting for col. Affects cells not yet allocated in the col.
// In other words, this style applies to new cells.
sheet.Col(3).SetStyles(styleID)
//set formatting for all cells in range
sheet.RangeByRef("D10:H13").SetStyles(styleID)
}