Вступ
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 є окремою комерційною пропозицією.