1. Продукти
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for Go

Aspose.Cells FOSS для Go

Створюйте, змінюйте та експортуйте таблиці Excel з Go — безкоштовно та з відкритим вихідним кодом, без зовнішніх залежностей.

Бібліотека Go з відкритим кодом для електронних таблиць Excel

Aspose.Cells FOSS for Go — безкоштовна, з відкритим вихідним кодом бібліотека для роботи з файлами електронних таблиць Excel у застосунках Go. Встановіть її за допомогою go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 і починайте створювати книги, читати та записувати клітинки, застосовувати стилі, додавати перевірку даних і експортувати у CSV, без потреби у Microsoft Excel або будь-яких залежностях Office.

Бібліотека надає невеликий, ідіоматичний Go API, побудований навколо Workbook, Worksheet, Cells та Cell. Доступ до клітинок здійснюється через колекцію Cells() за допомогою Get/Set/Remove, оформлення групується у багаторазові об’єкти Style, створені з Font, Fill, Alignment та Border, а також створюються структуровані діапазони Table з рядком заголовка та іменованим стилем таблиці. Спеціальний StreamingReader читає книги .xlsx рядок за рядком за допомогою зворотного виклику, тому великі файли можна обробляти без завантаження всього листа в пам’ять.

go.mod не оголошує зовнішніх залежностей — бібліотека повністю побудована на стандартній бібліотеці Go. Вона має ліцензію MIT, розміщена на GitHub, і встановлюється однією командою go get; без cgo, без нативних бібліотек Office і без системних пакетів для налаштування. Для корпоративного сімейства продуктів дивіться Aspose.Cells — Enterprise Product Family.

Читання та запис файлів Excel

  • Доступ до клітинок: Читати та записувати значення за допомогою Cells().Get(ref) / Cells().Set(ref, value).
  • Формули: Cell.SetFormula/GetFormula зберігають рядок формули в клітинці — обчислюється Excel або LibreOffice під час відкриття, а не бібліотекою під час збереження.
  • CSV-інтероп: Workbook.ExportToCSV/ImportFromCSV та Worksheet.ToCSV/FromCSV конвертують між XLSX і CSV.
  • Потокове читання: StreamingReader.ProcessRows передає рядки листа по одній за допомогою зворотного виклику, що дозволяє обробляти великі файли без завантаження всього листа в пам’ять.
  • Захист паролем: Workbook.SetPassword/VerifyPassword захищають та перевіряють паролі робочої книги.

Де Aspose.Cells FOSS можна використовувати

  • Конвеєри даних: Експортуйте результати запитів до бази даних безпосередньо у XLSX або CSV.
  • Генерація звітів: Створюйте стилізовані Excel-звіти з бекенд-служби на Go.
  • Обробка великих файлів: Потоково обробляйте книги з тисячами рядків за допомогою StreamingReader замість повного завантаження в пам’ять.
  • ETL-процеси: Читайте вхідні листи, трансформуйте дані та записуйте вихідні книги.
  • CI/CD автоматизація: Генеруйте артефакти-таблиці у збірних конвеєрах на базі Go та Docker-контейнерів.

Стилізація, перевірка даних та таблиці

  • Style objects: Групуйте Font (name, size, bold, italic, color), Fill (type, color), Alignment (horizontal, vertical, wrap text) та Border (top/bottom/left/right, color) у багаторазовий Style, застосовуваний за допомогою Cell.SetStyle.
  • Data validation: Worksheet.AddDataValidation додає правила перевірки списку та діапазону цілих чисел, кожне з власним заголовком помилки, повідомленням та стилем помилки.
  • Tables: Worksheet.AddTable/GetTable створює структурований діапазон Table з необов’язковим рядком заголовка та іменованим стилем таблиці.
  • Pictures: Worksheet.AddPicture вбудовує зображення Picture з позиціонуванням за допомогою SetAnchor(row, col).

Досвід розробника

Aspose.Cells FOSS for Go встановлюється за допомогою однієї команди go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. go.mod не містить записів require — немає зовнішніх залежностей для перевірки чи включення.

Інтерфейс API навмисно компактний: Workbook, Worksheet, Cells, Cell, Style та кілька допоміжних типів охоплюють створення електронних таблиць, стилізацію, валідацію та CSV/потоковий ввід/вивід. База коду має ліцензію MIT і розміщена на GitHub.

Створіть книгу та запишіть клітинки

Встановіть за допомогою go get, створіть Workbook, отримайте доступ до першого Worksheet і безпосередньо запишіть значення в комірки через колекцію Cells() перед збереженням.

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26
func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]
	ws.Cells().Set("A1", "Hello")
	ws.Cells().Set("B1", "World")
	ws.Cells().Set("A2", "Answer")
	ws.Cells().Set("B2", 42)
	outPath := "outputfiles/basic.xlsx"
	if err := wb.Save(outPath); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Printf("Workbook saved to %s\n", outPath)
}

Додати правила перевірки даних

Прикріпіть перевірку типу список (випадаючий список дозволених значень) та перевірку діапазону цілих чисел до двох різних колонок, кожна зі своїм заголовком та повідомленням про помилку.

func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]
	ws.Cells().Set("A1", "Fruit")
	ws.Cells().Set("A2", "Apple")
	ws.Cells().Set("A3", "Banana")
	dv := &cells_foss.DataValidation{
		Type:             cells_foss.DataValidationTypeList,
		Formula1:         `"Apple,Banana,Cherry,Dragonfruit"`,
		AllowBlank:       true,
		ShowErrorMessage: true,
		ErrorTitle:       "Invalid Fruit",
		ErrorMessage:     "Please pick a fruit from the list.",
		ErrorStyle:       cells_foss.ErrorStyleStop,
	}
	if err := ws.AddDataValidation("A2:A10", dv); err != nil {
		fmt.Printf("Error: %v\n", err)
		return
	}
	dv2 := &cells_foss.DataValidation{
		Type:             cells_foss.DataValidationTypeWhole,
		Formula1:         "1",
		Formula2:         "100",
		ShowErrorMessage: true,
		ErrorTitle:       "Invalid Value",
		ErrorMessage:     "Enter a whole number between 1 and 100.",
		ErrorStyle:       cells_foss.ErrorStyleWarning,
	}
	ws.Cells().Set("B1", "Score (1-100)")
	ws.AddDataValidation("B2:B10", dv2)
	outPath := "outputfiles/data_validation.xlsx"
	if err := wb.Save(outPath); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Printf("Workbook saved to %s\n", outPath)
}

Стрім великих робочих книг рядок за рядком

StreamingReader читає лист електронної таблиці по одному рядку за раз через зворотний виклик, тому багаторядковий робочий лист у тисячах рядків ніколи не потребує повного завантаження в пам’ять.

func main() {
	genPath := "outputfiles/streaming_data.xlsx"
	sr := cells_foss.NewStreamingReader(genPath)
	rowCount := 0
	var totalScore float64
	err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
		rowCount++
		if rowIdx == 1 {
			fmt.Printf("  Header: %v\n", cells)
			return nil
		}
		if score, ok := cells["C"+fmt.Sprint(rowIdx)]; ok {
			var s float64
			fmt.Sscanf(score, "%f", &s)
			totalScore += s
		}
		return nil
	})
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error streaming: %v\n", err)
		os.Exit(1)
	}
	fmt.Printf("Streamed %d rows (header + %d data rows)\n", rowCount, rowCount-1)
}

Часті Питання

Яка модель ліцензування для Aspose.Cells FOSS for Go?

Aspose.Cells FOSS for Go випущено під ліцензією MIT, яка дозволяє комерційне та відкрито-джерельне використання.

Чи можу я використовувати його у комерційних продуктах?

Так. Ліцензія MIT дозволяє комерційне використання без зобов’язання розкривати ваш власний вихідний код, за умови збереження оригінального повідомлення про авторські права.

Як встановити Aspose.Cells FOSS for Go?

Додайте його як залежність модуля Go за допомогою go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. Потрібен Go 1.24 або новіший.

Чи є зовнішні залежності?

Ні. go.mod не містить записів require — бібліотека повністю побудована на стандартній бібліотеці Go.

Чи можу я обробляти великі робочі книги, не завантажуючи їх повністю в пам’ять?

Так. StreamingReader.ProcessRows читає рядки листа по рядку через зворотний виклик, уникаючи повного завантаження в пам’ять.

  

Ресурси Підтримки та Навчання

 Українська