Вступ

Aspose.Cells FOSS для Go — це чиста Go-бібліотека для роботи з електронними таблицями Excel. Вона надає API для створення нових робочих книг з нуля, запису та стилізації значень клітинок, застосування правил перевірки даних, створення структурованих таблиць, вбудовування зображень та читання великих файлів .xlsx рядок за рядком — все без будь-яких нативних залежностей C або C++.

Бібліотека доступна як Go-модуль за адресою github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go і випущена під ліцензією MIT. Встановіть її за допомогою go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 у будь-який проєкт Go 1.24+.

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


Ключові особливості

Стилізація клітинок

Об’єднайте налаштування Font, Fill, Alignment і Border у багаторазовий Style, а потім застосуйте його до клітинки за допомогою Cell.SetStyle:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment керує Horizontal, Vertical та WrapText; Border керує видимістю правил Top, Bottom, Left і Right, а також Color.

Перевірка даних

Worksheet.AddDataValidation прикріплює правило перевірки до діапазону клітинок. Структура DataValidation містить правило Type, одне або два значення Formula та поля повідомлень про помилки:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

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,
}
ws.AddDataValidation("A2:A10", dv)

Таблиці

Worksheet.AddTable створює структуровану Table над діапазоном, з необов’язковим рядком заголовка та іменованим стилем таблиці:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")

tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

Зображення

Worksheet.AddPicture вбудовує зображення; Picture.SetAnchor(row, col) розташовує його:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

Трансляція великих файлів

StreamingReader читає лист рядок за рядком за допомогою колбека, тому робоча книга з кількома тисячами рядків ніколи не потребує повного завантаження в пам’ять:

sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

Швидкий старт

Встановіть модуль:

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

Мінімальний робочий процес — створити робочу книгу, записати два клітини, зробити заголовок жирним і зберегти:

package main

import (
	"fmt"

	cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)

func main() {
	wb := cells_foss.NewWorkbook()
	ws := wb.Worksheets[0]

	ws.Cells().Set("A1", "Product")
	ws.Cells().Set("B1", "Revenue")

	boldStyle := cells_foss.NewStyle()
	boldStyle.Font.Bold = true
	for _, ref := range []string{"A1", "B1"} {
		cell, _ := ws.Cells().Get(ref)
		cell.SetStyle(boldStyle)
	}

	if err := wb.Save("report.xlsx"); err != nil {
		fmt.Printf("Error saving workbook: %v\n", err)
		return
	}
	fmt.Println("Workbook saved to report.xlsx")
}

Підтримувані формати

ФорматРозширенняЧитатиЗапис
XLSX.xlsx
CSV.csv

XLSX-книги створюються в пам’яті за допомогою NewWorkbook і записуються за допомогою Workbook.Save. CSV є двостороннім за допомогою Workbook.ImportFromCSV та Workbook.ExportToCSV.


Відкритий код та ліцензування

Aspose.Cells FOSS для Go випущено під ліцензією MIT. Немає обмежень використання, немає плати за виконання та вимог щодо реєстрації. Вихідний код доступний за адресою github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go.

Комерційне використання дозволено згідно з умовами ліцензії MIT. Якщо ваш проєкт потребує підтримки корпоративного рівня, розширеного охоплення форматів або хмарної інтеграції, Aspose.Cells — Enterprise Product Family є окремою комерційною пропозицією.


Початок роботи

Пов’язані ресурси