Biblioteca Go de código aberto para leitura de arquivos XLSX do Excel
Leia documentos XLSX por meio da API Open Source Go.
Go-Excel é uma biblioteca open source leve pura para leitura de documentos do Microsoft Excel. A API tem como objetivo fornecer uma maneira simples e fácil de ler arquivos XLSX como uma tabela relacionada a db. Ao ler um arquivo XLSX, a API espera a primeira linha como linha de título e as linhas como linhas de dados.
A API fornece um conjunto de tags para manipular documentos do Excel. A tag da coluna mapeia para o nome do campo na linha do título, a tag padrão define o valor padrão quando nenhum valor é definido, a tag split divide uma string e a converte em uma fatia, a tag nil pula o valor de varredura na célula e req A tag retorna um erro se o título da coluna não existir no Excel.
Introdução ao Go-Excel
A maneira recomendada de instalar o Go-Excel em seu projeto é usando o GitHub. Por favor, use o seguinte comando para uma instalação suave.
Instale go-excel via GitHub
go get github.com/szyhf/go-excel
Leia o arquivo do Excel via API Free Go
A biblioteca de código aberto Go-Excel permite que os programadores de computador leiam arquivos do Excel via GO. Ao ler o arquivo do Excel, você pode usar o nome do campo como o nome da coluna padrão e pode mapear uma coluna em mais de um campo. Após configurar as opções de leitura você abre uma nova conexão com um arquivo Excel utilizando o método excel.NewConnector() e com sucesso, conectando ao arquivo excel você pode ler seu conteúdo utilizando o método conn.NewReader().
Leitor simples para ler o arquivo do Excel no Go Apps
type Reader interface {
// Get all titles sorted
GetTitles() []string
// Read current row into a object
Read(v interface{}) error
// Read all rows
// container: container should be ptr to slice or array.
ReadAll(container interface{}) error
// Read next rows
Next() bool
// Close the reader
Close() error
}
Métodos avançados para ler o Excel via GO API
A API de código aberto Go-Excel fornece métodos básicos e avançados para ler arquivos do Excel. Você pode usar a linha de índice como título, todas as linhas antes da linha de título serão ignoradas e a linha de título padrão será definida como 0. Você pode pular as linhas vazias e pular colunas maiores que o título. A API permite definir células vazias com valores padrão e você pode definir valores padrão usando unmarshal via codificação.BinaryUnmarshaler
Mapa de leitura via Free Gt API
conn := excel.NewConnecter()
err := conn.Open(filePath)
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
// Generate an new reader of a sheet
// sheetNamer: if sheetNamer is string, will use sheet as sheet name.
// if sheetNamer is int, will i'th sheet in the workbook, be careful the hidden sheet is counted. i ∈ [1,+inf]
// if sheetNamer is a object implements `GetXLSXSheetName()string`, the return value will be used.
// otherwise, will use sheetNamer as struct and reflect for it's name.
// if sheetNamer is a slice, the type of element will be used to infer like before.
rd, err := conn.NewReader(stdSheetName)
if err != nil {
fmt.Println(err)
return
}
defer rd.Close()
idx := 0
for rd.Next() {
var m map[string]string
if err := rd.Read(&m); err != nil {
fmt.Println(err)
return
}
expectStdMap := expectStandardMapList[idx]
if !reflect.DeepEqual(m, expectStdMap) {
fmt.Printf("unexpect std at %d = \n%s", idx, convert.MustJsonPrettyString(expectStdMap))
}
fmt.Printf("%d => %s\n", idx, convert.MustJsonString(m))
idx++
}