Огляд функцій
Огляд функцій
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 — ввід/вивід електронних таблиць може зазнати збою через неправильні шляхи або некоректний вхід.
Типові проблеми
| Issue | Cause | Виправити |
|---|---|---|
Значення клітинки не видно після 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 | Захистити та перевірити пароль робочої книги |