Библиотека Go для работы с документами Excel XLSX
Go API с открытым исходным кодом, который поддерживает создание электронных таблиц Microsoft Excel XLSX, управление рабочими листами, обработку строк и столбцов в рабочих листах через Go API.
Библиотека xlsx обеспечивает очень быстрый и надежный способ работы с файлами Microsoft Excel с помощью Go. Библиотека помогает упростить чтение и запись файлов формата Excel XLSX. Формат файла XLSX был представлен в 2007 году и использует стандарт Open XML, адаптированный Microsoft еще в 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() для создания нового файла. После его создания вы можете легко добавлять новый контент в книгу. Вы можете легко добавить новый лист или добавить существующий лист. После создания и завершения работы сохраните свою работу, рекомендуется закрыть лист.
Создание и редактирование файла 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. Он поддерживает добавление новых строк и столбцов, повторение строк и столбцов, удаление ненужных строк и столбцов, добавление новых ячеек в строку, получение значения из ячейки, применение форматирования к диапазону ячеек и многое другое.
Включить столбцы и Росс в рабочий лист Excel через Go Library
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)
}