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

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

Go-Excel — це легка чиста бібліотека go з відкритим кодом для читання документів Microsoft Excel. Метою API є надання простого та легкого способу читання файлів XLSX як таблиці, подібної до relate-db. Під час читання файлу XLSX API очікує, що перший рядок буде рядком заголовка, а рядки – рядками даних.

API надає набір тегів для роботи з документами Excel. Тег стовпця відповідає імені поля в рядку заголовка, тег за замовчуванням встановлює значення за замовчуванням, якщо значення не визначено, тег split розділяє рядок і перетворює їх на фрагмент, тег nil пропускає значення сканування в комірці та вимагає тег повертає помилку, якщо заголовок стовпця не існує в 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().

Простий Reader для читання файлів 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 через кодування.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++
}
 Українська