Введение
Помимо создания и стилизации рабочих книг, большинство повседневного кода для электронных таблиц тратит время на чтение и запись значений ячеек, привязку формул и перемещение данных между XLSX и CSV. Aspose.Cells FOSS для Go охватывает все три через типы Workbook и Cells.
Библиотека доступна как модуль 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+.
В этой статье рассматривается чтение/запись ячеек, формулы, конвертация в CSV и удаление ячеек.
Ключевые возможности
Создание книги и запись ячеек
NewWorkbook() возвращает рабочую книгу с уже присутствующим листом. Записывайте значения с помощью Cells().Set(ref, value):
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Category")
ws.Cells().Set("C1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", "Gadgets")
ws.Cells().Set("C2", 12.99)
wb.Save("inventory.xlsx")
Считать ячейки обратно
Cells().Get(ref) возвращает *Cell для ссылки вместе с ошибкой, если ссылка недействительна:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("C2", 12.99)
cell, err := ws.Cells().Get("C2")
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("C2 = %v\n", cell.Value)
Используйте Cells().All(), чтобы перечислить каждую заполненную ячейку в коллекции, когда необходимо пройтись по всему листу.
Добавить формулу
Cell.SetFormula сохраняет строку формулы в ячейке. Сначала создайте ячейку с помощью Set, затем прикрепите формулу — формула будет вычислена Excel или LibreOffice при открытии, а не библиотекой:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("D2", nil)
cell, _ := ws.Cells().Get("D2")
cell.SetFormula("C2*2")
Преобразование CSV
Workbook.ExportToCSV записывает указанный индекс листа в CSV-файл с выбранным вами разделителем; Workbook.ImportFromCSV читает CSV-файл в именованный лист:
wb := cells_foss.NewWorkbook()
if err := wb.ExportToCSV(0, "inventory.csv", ','); err != nil {
fmt.Printf("Error exporting: %v\n", err)
return
}
Удалить ячейку
Cells().Remove(ref) очищает значение ячейки:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A2", "Widget A")
if err := ws.Cells().Remove("A2"); err != nil {
fmt.Printf("Error removing cell: %v\n", err)
}
Быстрый старт
Установите модуль:
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Минимальный рабочий процесс — создайте небольшую таблицу значений и экспортируйте её в CSV:
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", "Item")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
if err := wb.ExportToCSV(0, "inventory.csv", ','); err != nil {
fmt.Printf("Error exporting: %v\n", err)
return
}
fmt.Println("Exported inventory.csv")
}
Поддерживаемые форматы
| Формат | Расширение | Чтение | Запись |
|---|---|---|---|
| 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 является отдельным коммерческим предложением.