Бібліотека 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, доступ до робочих аркушів, додавання нових робочих аркушів, керування рядками та стовпцями всередині робочого аркуша, додавання клітинки, отримання клітинки з рядка, форматування клітинок, застосування стилів до клітинок, підтримка іменованих діапазонів і багато іншого.

Previous Next

Початок роботи з 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)
}
 Українська