Электронные таблицы MS Excel упростили хранение и совместное использование большого количества табличных данных. Помимо этого, вы можете выполнять различные операции, такие как применение формул, создание диаграмм и графиков, сортировка и фильтрация данных и так далее. В этой статье вы узнаете, как реализовать функции автоматизации Excel из ваших приложений Java. Прочитав эту статью, вы сможете создавать файлы Excel XLSX или XLS с нуля, используя Java. Кроме того, в этой статье рассказывается, как обновить существующий файл Excel, создать диаграммы, применить формулы и добавить сводные таблицы на листы Excel.

Java API для создания файлов Excel — скачать бесплатно

Aspose.Cells for Java — это мощный API для работы с электронными таблицами, который позволяет создавать или изменять файлы Excel без MS Office. API поддерживает добавление диаграмм, графиков, формул и программное выполнение других операций с электронными таблицами. Вы можете скачать API бесплатно или установить его в своих приложениях на основе Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>20.9</version>
</dependency>

Создайте Excel XLSX или XLS с помощью Java

Файлы MS Excel называются рабочими книгами, и каждая рабочая книга состоит из одного или нескольких рабочих листов. Рабочие листы также содержат строки и столбцы для хранения данных в виде ячеек. Итак, давайте начнем с создания простой рабочей книги. Ниже приведены шаги для создания файла Excel XLSX с нуля.

  • Создайте экземпляр класса Workbook.
  • Получите доступ к нужному рабочему листу, используя метод Workbook.getWorksheets.get().
  • Поместите значение в нужную ячейку на листе, используя идентификатор ячейки, например A1, B3 и т. д.
  • Сохраните книгу как файл Excel, используя метод Workbook.save().

В следующем примере кода показано, как создать файл Excel XLSX с помощью Java.

// Создать новую книгу
Workbook workbook = new Workbook();

// Добавьте значение в ячейку
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World!");

// Сохранить как файл Excel XLSX
workbook.save("Excel.xlsx"); 

Редактировать файл Excel XLSX с помощью Java

Давайте теперь посмотрим, как изменить или вставить данные в существующий файл MS Excel. Для этого вы можете просто загрузить файл, получить доступ к нужному рабочему листу и сохранить обновленный файл. Ниже приведены шаги для изменения существующего файла Excel.

  • Откройте файл Excel с помощью класса Workbook.
  • Получите доступ к рабочим листам и ячейкам, используя классы Worksheet и Cell соответственно.
  • Сохраните обновленную книгу в виде файла Excel .xlsx.

В следующем примере кода показано, как редактировать существующий файл MS Excel с помощью Java.

// Создать новую книгу
Workbook workbook = new Workbook("workbook.xls"); 

// Получить ссылку на ячейку «A1» из ячеек рабочего листа
Cell cell = workbook.getWorksheets().get(0).getCells().get("A1");

// Установите «Привет, мир!» значение в ячейку "A1"
cell.setValue("updated cell value.");

// Запишите файл Excel
workbook.save("Excel.xls", FileFormatType.EXCEL_97_TO_2003);

Создание диаграмм или графиков в Excel с использованием Java

Диаграммы в электронных таблицах используются для визуального представления данных, хранящихся на листах. Они облегчают анализ большого количества данных. Aspose.Cells for Java предоставляет широкий набор диаграмм, которые вы можете программно создавать в файлах Excel. Ниже приведены шаги для создания диаграммы в файле Excel XLSX.

  • Создайте новый файл Excel или загрузите существующий с помощью класса Workbook.
  • Добавьте данные на лист (необязательно).
  • Получите набор диаграмм рабочего листа с помощью метода Worksheet.getCharts().
  • Добавьте новую диаграмму, используя метод Worksheet.getCharts().add().
  • Получите вновь созданную диаграмму из коллекции.
  • Укажите диапазон ячеек, чтобы установить NSeries для диаграммы.
  • Сохраните книгу как файл Excel .xlsx.

В следующем примере кода показано, как создать диаграмму в Excel XLSX с помощью Java.

// Создать новую книгу
Workbook workbook = new Workbook("workbook.xlsx"); 

// Получение ссылки на первый рабочий лист
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);

// Добавление образца значения в ячейки
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(50);

// получить диаграммы на листе
ChartCollection charts = sheet.getCharts();

// Добавление диаграммы на рабочий лист
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);

// Добавление NSeries (источника данных диаграммы) на диаграмму в диапазоне от "A1"
// ячейка на "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);

// Запишите файл Excel 
workbook.save("Excel_with_Chart.xlsx");
создать диаграмму в excel с помощью java

Создайте сводную таблицу в Excel XLSX с помощью Java

Сводные таблицы на листах Excel имеют различные цели, такие как добавление фильтров к данным, вычисление итогов, суммирование данных и т. д. Сводные таблицы можно создавать, используя диапазон ячеек на листе. Ниже приведены шаги для создания сводной таблицы на листе Excel.

  • Создайте новую Рабочую книгу или загрузите существующий файл.
  • Вставьте данные в рабочий лист (необязательно).
  • Получите доступ к коллекции сводных таблиц с помощью метода Worksheet.getPivotTables().
  • Добавьте новую сводную таблицу на лист, используя метод Worksheet.getPivotTables().add().
  • Внесите данные в сводную таблицу.
  • Сохраните книгу.

В следующем примере кода показано, как создать сводную таблицу в Excel с помощью Java.

// Создать новую книгу
Workbook workbook = new Workbook("workbook.xlsx"); 

// Получите первый рабочий лист.
Worksheet sheet = workbook.getWorksheets().get(0);

// Получение коллекции ячеек рабочего листа
Cells cells = sheet.getCells();

// Установка значения в ячейки
Cell cell = cells.get("A1");
cell.setValue("Sport");
cell = cells.get("B1");
cell.setValue("Quarter");
cell = cells.get("C1");
cell.setValue("Sales");

cell = cells.get("A2");
cell.setValue("Golf");
cell = cells.get("A3");
cell.setValue("Golf");
cell = cells.get("A4");
cell.setValue("Tennis");
cell = cells.get("A5");
cell.setValue("Tennis");
cell = cells.get("A6");
cell.setValue("Tennis");
cell = cells.get("A7");
cell.setValue("Tennis");
cell = cells.get("A8");
cell.setValue("Golf");

cell = cells.get("B2");
cell.setValue("Qtr3");
cell = cells.get("B3");
cell.setValue("Qtr4");
cell = cells.get("B4");
cell.setValue("Qtr3");
cell = cells.get("B5");
cell.setValue("Qtr4");
cell = cells.get("B6");
cell.setValue("Qtr3");
cell = cells.get("B7");
cell.setValue("Qtr4");
cell = cells.get("B8");
cell.setValue("Qtr3");

cell = cells.get("C2");
cell.setValue(1500);
cell = cells.get("C3");
cell.setValue(2000);
cell = cells.get("C4");
cell.setValue(600);
cell = cells.get("C5");
cell.setValue(1500);
cell = cells.get("C6");
cell.setValue(4070);
cell = cells.get("C7");
cell.setValue(5000);
cell = cells.get("C8");
cell.setValue(6430);


PivotTableCollection pivotTables = sheet.getPivotTables();

// Добавление сводной таблицы на лист
int index = pivotTables.add("=A1:C8", "E3", "PivotTable2");

// Доступ к экземпляру недавно добавленной сводной таблицы
PivotTable pivotTable = pivotTables.get(index);

// Отображение общих итогов для строк.
pivotTable.setRowGrand(false);

// Перетаскивание первого поля в область строки.
pivotTable.addFieldToArea(PivotFieldType.ROW, 0);

// Перетаскивание второго поля в область столбца.
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1);

// Перетаскивание третьего поля в область данных.
pivotTable.addFieldToArea(PivotFieldType.DATA, 2);

// Запишите файл Excel 
workbook.save("Excel_with_Chart.xlsx");
создать сводную таблицу в excel с помощью java

Добавить формулы для ячеек в файле Excel с помощью Java

Aspose.Cells for Java также позволяет работать с формулами на листах Excel. К ячейкам можно применять как встроенные, так и дополнительные функции.

Применение встроенных функций в Excel

Для использования встроенных функций вы можете просто получить доступ к нужной ячейке на листе и добавить формулу, используя метод Cell.setFormula(String). В следующем примере кода показано, как задать встроенную формулу с помощью Java.

// Создать новую книгу
Workbook workbook = new Workbook();

// Добавьте значение в ячейку
workbook.getWorksheets().get(0).getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))");

// Сохранить как файл Excel XLSX
workbook.save("Excel.xlsx"); 

Добавить функции надстройки в Excel

Может быть случай, когда вам нужно использовать пользовательскую функцию. Для этого вам нужно будет зарегистрировать функцию надстройки с помощью файла .xlam (надстройка Excel с поддержкой макросов), а затем использовать ее для нужных ячеек. Для регистрации функций надстройки Aspose.Cells for Java предоставляет методы registerAddInFunction(int, String) и registerAddInFunction(String, String, boolean). В следующем примере кода показано, как зарегистрировать и использовать функцию надстройки с помощью Java.

// создать новую книгу
Workbook workbook = new Workbook();

// Зарегистрируйте надстройку с поддержкой макросов вместе с именем функции
int id = workbook.getWorksheets().registerAddInFunction("TESTUDF.xlam", "TEST_UDF", false);

// Зарегистрируйте дополнительные функции в файле (если есть)
workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file

// Доступ к первому рабочему листу
Worksheet worksheet = workbook.getWorksheets().get(0);

// Доступ к первой ячейке
Cell cell = worksheet.getCells().get("A1");

// Установить имя формулы, присутствующее в надстройке
cell.setFormula("=TEST_UDF()"); 

// Сохранить как файл Excel XLSX
workbook.save("Excel.xlsx"); 

Вывод

В этой статье вы увидели, как создавать файлы MS Excel с нуля, используя Java без MS Office. Вы также узнали, как обновлять книги, создавать диаграммы, добавлять таблицы и применять формулы к значениям ячеек на листах MS Excel. Вы можете узнать больше об API Aspose для Java Excel, используя документацию.

Смотрите также