Biblioteca Go para trabalhar com documentos XLSX do Excel
API Go de código aberto compatível com geração de planilhas XLSX do Microsoft Excel, gerenciamento de planilhas, manipulação de linhas e colunas em planilhas por meio da API Go.
A biblioteca xlsx fornece uma maneira muito rápida e confiável de trabalhar com arquivos do Microsoft Excel usando Go. A biblioteca ajuda a simplificar a leitura e gravação do formato de arquivo Excel XLSX. O formato de arquivo XLSX foi introduzido em 2007 e usa o padrão Open XML adaptado pela Microsoft em 2000. A biblioteca é de código aberto e está disponível sob a licença BSD-3-Clause.
A biblioteca xlsx de código aberto inclui suporte para vários recursos importantes relacionados à criação e manipulação de documentos do Microsoft Excel, como criar um novo arquivo XlSX, abrir arquivos existentes do Excel, acessar suas planilhas, adicionar novas planilhas, gerenciar linhas e colunas dentro de uma planilha, adicionar células, obter células de uma linha, formatar células, aplicar estilos a células, suporte a intervalos nomeados e muito mais.
Introdução ao Xlsx2Go
A maneira recomendada de instalar o xlsx é do GitHub, use o seguinte comando para uma instalação suave.
Instalar xlsx via GitHub
go get https://github.com/tealeg/xlsx.git
Criando novos arquivos XLSX via biblioteca Go
A biblioteca xlsx de código aberto oferece aos desenvolvedores de software a capacidade de criar um novo arquivo XLSX vazio do zero usando alguns comandos Go. Os desenvolvedores podem usar a nova função NewFile() para gerar um novo arquivo. Depois de criado, você pode adicionar facilmente novo conteúdo à pasta de trabalho. Você pode adicionar uma nova planilha ou anexar uma planilha existente com facilidade. Uma vez criado e concluído o trabalho, por favor salve seu trabalho, é recomendado Fechar() a planilha.
Criar e Editar Arquivo Excel LS via 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)
}
}
Acesse e leia arquivos XLSX
A biblioteca xlsx de código aberto fornece um conjunto de funções que permitem aos desenvolvedores acessar abrir e ler um arquivo de planilha XLSX existente dentro de seus próprios aplicativos Go. Você também pode acessar facilmente as planilhas de uma pasta de trabalho com apenas alguns comandos Go. Os desenvolvedores também podem acessar uma planilha específica de sua escolha com facilidade.
Acessar e ler Arquivo Excel através da biblioteca 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(), ","))
}
Manipulando Linhas e Colunas em Planilhas
As células são a espinha dorsal de uma planilha do Excel. Uma planilha é composta de células organizadas em linhas e colunas. A biblioteca xlsx oferece aos desenvolvedores de software uma ampla variedade de recursos para lidar com linhas e colunas dentro de seus aplicativos usando comandos Go. Ele suporta adicionar novas linhas e colunas, iterar linhas e colunas, excluir linhas e colunas indesejadas, adicionar novas células a uma linha, obter valor de uma célula, aplicar formatação a um intervalo de células e muito mais.
Insira e Ross em uma planilha do Excel via 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(), ","))
}
Aplicar estilos e formatação
A biblioteca Free library xlsx fornece várias funções importantes que permitem aos desenvolvedores de software aplicar formatação e estilos às suas planilhas com facilidade. Estilos fornecem layout e decoração de células como fonte, cor, alinhamento de conteúdo, tamanho de fonte, preenchimento, etc. Você pode facilmente aplicar o estilo a um intervalo de células com apenas algumas linhas de código. Você só precisa criar um estilo uma vez e reutilizá-lo quando necessário. Você também pode aplicar formatos de número e data para células.
Aplicar estilos e formatação no arquivo Excel através da biblioteca 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)
}