Огляд функцій

Огляд функцій

Aspose.Cells FOSS для API Go зосереджений на Workbook, Worksheet, Cells та Cell. Цей посібник проходить інші можливості бібліотеки: стилізацію, валідацію даних, таблиці, зображення та потокове читання великих файлів.


Стилізація комірки

Групуйте налаштування 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

highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
	Type:  cells_foss.FillTypeSolid,
	Color: "FF4472C4",
}

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)

Перевірка діапазону цілих чисел використовує DataValidationTypeWhole з Formula1/Formula2 як нижню та верхню межі.


Таблиці

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

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

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

Отримайте існуючу таблицю за назвою за допомогою Worksheet.GetTable(name).


Зображення

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 читає аркуш рядок за рядком через зворотний виклик, тому робочу книгу з тисячами рядків не потрібно повністю завантажувати в пам’ять:

path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
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)
}

Поради та кращі практики

  • Використовуйте StreamingReader замість повного завантаження Workbook, коли файл може містити тисячі рядків і вам потрібно лише читати, а не змінювати його.
  • Створіть Style один раз і використовуйте його в багатьох клітинках, замість того щоб конструювати новий для кожної клітинки.
  • Cell.SetFormula зберігає рядок формули точно так, як є — його оцінює Excel або LibreOffice під час відкриття, а не бібліотека під час збереження.
  • Перевіряйте повернене значення error від Save, AddDataValidation та викликів імпорту/експорту CSV — ввід/вивід електронних таблиць може зазнати збою через неправильні шляхи або некоректний вхід.

Типові проблеми

IssueCauseВиправити
Значення клітинки не видно після SetПосилання на неправильний лист або посилання на клітинку поза діапазономПеревірте індекс Worksheet і те, що посилання у стилі A1 відповідає потрібній клітинці
Формула відображається як звичайний текст замість обчисленняБібліотека лише зберігає рядок формули; вона не виконує обчислення формулВідкрийте файл у Excel або LibreOffice, які виконують обчислення під час відкриття
Перевірка даних не відображається в ExcelВалідація була додана до діапазону, який не включає цільову клітинкуПереконайтеся, що рядок діапазону (наприклад, "A2:A10") охоплює клітинки, які ви очікуєте валідати

FAQ

Чи бібліотека сама оцінює формули?

Ні. Cell.SetFormula/GetFormula зберігають рядок формули, який Excel або LibreOffice оцінює під час відкриття файлу.

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

StreamingReader охоплює потокові читання. Запис великих робочих книг наразі здійснюється через стандартний in-memory Workbook/Worksheet API.

Чи застосовує AddTable авто-фільтр автоматично?

Це не підтверджено у поточному API інтерфейсі — документованими полями Table є лише HasHeaderRow і StyleName. Перевірте згенерований файл .xlsx, якщо це важливо для вашого випадку використання.


Підсумок API Reference

Клас / МетодОпис
Workbook.NewWorkbook / SaveСтворити та зберегти робочу книгу
Worksheet.CellsОтримати доступ до колекції комірок робочого листа
Cells.Get / Set / Remove / AllЧитати, записувати, видаляти та перераховувати комірки
Cell.SetStyle / SetFormula / GetFormulaЗастосовувати оформлення та формули до комірки
Style, Font, Fill, Alignment, BorderСтворювати багаторазове форматування комірок
Worksheet.AddDataValidationДодати правило перевірки до діапазону комірок
Worksheet.AddTable / GetTableСтворювати та отримувати структуровані діапазони таблиць
Worksheet.AddPicture / Picture.SetAnchor(row, col)Вбудовувати та розташовувати зображення
StreamingReader.ProcessRowsСтрімити робочий лист рядок за рядком
Workbook.ExportToCSV / ImportFromCSVКонвертувати між XLSX та CSV
Workbook.SetPassword / VerifyPasswordЗахистити та перевірити пароль робочої книги

Дивіться також

 Українська