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

Previous Next

Начало работы с 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)
}
 Русский