Введение

Aspose.Cells FOSS для Java — это pure-Java 17, библиотека с лицензией MIT для создания и манипулирования рабочими книгами Excel .xlsx без какой-либо зависимости от Microsoft Office. В этой статье рассматриваются самые распространённые операции управления электронными таблицами: создание рабочих книг, загрузка файлов, работа с ячейками и сохранение результатов.

Быстрый старт

Добавьте Maven-зависимость в ваш pom.xml, чтобы начать:

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-cells-foss</artifactId>
  <version>26.5.0</version>
</dependency>

Файл лицензии или ключ API не требуются. Библиотека полностью с открытым исходным кодом под лицензией MIT.


Создание рабочей книги

Конструктор Workbook() создает новую пустую рабочую книгу с одним листом по умолчанию:

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
System.out.println(sheet.getName()); // Sheet1

Используйте WorksheetCollection.add(sheetName) для добавления именованных листов и removeAt(sheetName) для их удаления:

int idx = workbook.getWorksheets().add("Report");
workbook.getWorksheets().get(idx).setName("Report");
workbook.getWorksheets().removeAt("Sheet1");

Загрузка существующего файла

Передайте путь к файлу в Workbook(fileName), чтобы открыть существующую рабочую книгу .xlsx:

Workbook workbook = new Workbook("data/report.xlsx");
System.out.println("Sheets: " + workbook.getWorksheets().getCount());

Для входных потоков (например, из базы данных или ответа HTTP) используйте Workbook(stream):

try (java.io.InputStream is = new java.io.FileInputStream("data/report.xlsx")) {
    Workbook workbook = new Workbook(is);
}

Чтение и запись ячеек

Worksheet.getCells() возвращает коллекцию Cells. Доступ к отдельным ячейкам можно получить по имени или по индексу строки/столбца, начинающемуся с нуля:

import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

WorksheetCollection sheets = workbook.getWorksheets();
Cells cells = sheets.get(0).getCells();

// Write by cell name
cells.get("A1").putValue("Product");
cells.get("B1").putValue("Revenue");

// Write by row/column index
cells.get(1, 0).putValue("Widget A");   // A2
cells.get(1, 1).putValue(45000);        // B2

// Read back
String name = cells.get("A2").getStringValue();
Object rev  = cells.get("B2").getValue();
System.out.println(name + ": " + rev);

Настройка формул

Используйте Cell.setFormula() для сохранения строки формулы в ячейке. Формула вычисляется при сохранении и последующей загрузке книги:

cells.get("B3").setFormula("=SUM(B2:B2)");
System.out.println(cells.get("B3").getFormula()); // =SUM(B2:B2)

Результаты формул разрешаются при сохранении и загрузке книги.


Сохранение рабочей книги

Workbook.save(fileName) записывает книгу; формат определяется расширением файла (.xlsx создает файл Excel 2007+):

workbook.save("output/result.xlsx");

Всегда оборачивайте большие книги в try-with-resources, чтобы своевременно освобождать файловые дескрипторы:

try (Workbook workbook = new Workbook("data/input.xlsx")) {
    workbook.getWorksheets().get(0).getCells().get("A1").putValue("Updated");
    workbook.save("data/output.xlsx");
}

Что изучать дальше

Aspose.Cells FOSS для Java включает API для операций на уровне листов, выходящих за рамки манипуляций с ячейками:

  • Защита листа: protect() / unprotect() on Worksheet
  • AutoFilter: Worksheet.getAutoFilter() для программной фильтрации данных
  • Стили ячеек: Cell.getStyle() / setStyle() with Style properties
  • Объединённые ячейки: Cells.merge(firstRow, firstColumn, totalRows, totalColumns)

Для полного API пошагового руководства см. developer guide и API reference.

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

Приведённые выше примеры охватывают наиболее распространённые задачи управления электронными таблицами в Aspose.Cells FOSS для Java. Для полного API пошагового руководства, включающего проверку, диаграммы и форматирование, см. developer guide.

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