Введение

Помимо создания и стилизации рабочих книг, большинство повседневного кода для электронных таблиц тратит время на чтение и запись значений ячеек, привязку формул и перемещение данных между 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 является отдельным коммерческим предложением.


Начало работы

Связанные ресурсы