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