Библиотека Go с открытым исходным кодом для чтения файлов Excel XLSX

Чтение документов XLSX через Open Source Go API.

Go-Excel — это облегченная чистая библиотека Go с открытым исходным кодом для чтения документов Microsoft Excel. Целью API является предоставление простого и удобного способа чтения файлов XLSX в виде таблицы, подобной релятивной базе данных. При чтении файла XLSX API ожидает, что первая строка будет строкой заголовка, а строки — строками данных.

API предоставляет набор тегов для управления документами Excel. Тег столбца сопоставляется с именем поля в строке заголовка, тег по умолчанию устанавливает значение по умолчанию, когда значение не определено, тег разделения разделяет строку и преобразует ее в фрагмент, тег nil пропускает значение сканирования в ячейке и req Тег возвращает ошибку, если заголовок столбца не существует в Excel.

Previous Next

Начало работы с Go-Excel

Рекомендуемый способ установки Go-Excel в ваш проект — использовать GitHub. Пожалуйста, используйте следующую команду для плавной установки.

Установите go-excel через GitHub

go get github.com/szyhf/go-excel 

Чтение файла Excel через Free Go API

Библиотека с открытым исходным кодом Go-Excel позволяет программистам читать файлы Excel через GO. При чтении файла Excel вы можете использовать имя поля в качестве имени столбца по умолчанию, и вы можете сопоставить столбец с несколькими полями. После настройки параметров чтения вы открываете новое соединение с файлом Excel с помощью метода excel.NewConnector() и успешно подключаетесь к файлу excel, вы можете прочитать его содержимое с помощью метода conn.NewReader().

Простой читатель для чтения файла Excel в 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
}

Расширенные методы чтения Excel через GO API

API с открытым исходным кодом Go-Excel предоставляет как базовые, так и расширенные методы чтения файлов Excel. Вы можете использовать строку индекса в качестве заголовка, каждая строка перед строкой заголовка будет игнорироваться, а строка заголовка по умолчанию имеет значение 0. Вы можете пропустить пустые строки и пропустить столбцы, превышающие размер заголовка. API позволяет устанавливать пустые ячейки со значениями по умолчанию, и вы можете установить значения по умолчанию, используя unmarshal через encoding.BinaryUnmarshaler.

Читать карту через бесплатный 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++
}
 Русский