Вступ

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 walkthrough, дивіться developer guide та API reference.

Початок роботи

Наведені вище приклади охоплюють найпоширеніші завдання керування електронними таблицями в Aspose.Cells FOSS для Java. Для повного API walkthrough, що включає валідацію, діаграми та форматування, дивіться developer guide.

Пов’язані ресурси