Go Library за работа с 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 Library

Библиотеката 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. Разработчиците могат също да имат лесен достъп до определен лист по свой избор.

Access Read Excel файл чрез библиотека

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

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 Library

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)
}
 Български