Чтение данных в файлах Excel с помощью Java

Файлы MS Excel в основном используются для хранения табличных данных в виде рабочих листов. Часто огромные наборы данных также хранятся в файлах Excel. Поэтому вы можете столкнуться со сценарием, в котором вам нужно читать и извлекать данные из рабочих листов в файле Excel. Для этого в этой статье показано, как читать файл Excel в Java. Мы продемонстрируем, как программно читать весь файл Excel или только один рабочий лист.

Библиотека Java для чтения файлов Excel

Для чтения данных с рабочих листов мы будем использовать Aspose.Cells for Java. Это API для работы с электронными таблицами для создания файлов Excel с нуля. Более того, он позволяет вам довольно легко читать и управлять существующими файлами Excel. API можно загрузить из раздела загрузок или установить, добавив следующие конфигурации Maven в pom.xml.

<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>21.11</version>
</dependency>

Чтение файла Excel в Java

В файлах Excel данные хранятся в ячейках, где каждая ячейка идентифицируется своим именем (A1, B3 и т. д.) или индексом строки и столбца. Эти ячейки вместе образуют рабочий лист, а файл Excel состоит из одного или нескольких рабочих листов. Все рабочие листы содержатся в рабочей книге. Итак, это был краткий обзор структуры файла Excel. Теперь приступим к чтению данных из файла Excel.

Ниже приведены шаги для чтения файла Excel и печати его данных с помощью Java.

  • Загрузите файл Excel, используя класс Workbook.
  • Создайте объект класса WorksheetCollection и получите ссылку на рабочие листы с помощью метода Workbook.getWorksheets().
  • Запустите цикл, чтобы просмотреть все рабочие листы в коллекции, и на каждой итерации выполните следующие шаги:
    • Получить ссылку на рабочий лист в объекте Worksheet.
    • Получить количество строк и столбцов данных на листе.
    • Начать цикл для строк.
    • Запустите вложенный цикл для столбцов.
    • Считайте данные из каждой ячейки, используя метод Worksheet.getCells().get(rowIndex, columnIndex).getValue().

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

// Загрузить файл Excel
Workbook wb = new Workbook("workbook.xlsx");

// Получить все рабочие листы
WorksheetCollection collection = wb.getWorksheets();

// Перебрать все рабочие листы
for (int worksheetIndex = 0; worksheetIndex < collection.getCount(); worksheetIndex++) {

  // Получить рабочий лист, используя его индекс
  Worksheet worksheet = collection.get(worksheetIndex);

  // Печать имени рабочего листа
  System.out.print("Worksheet: " + worksheet.getName());

  // Получить количество строк и столбцов
  int rows = worksheet.getCells().getMaxDataRow();
  int cols = worksheet.getCells().getMaxDataColumn();

  // Цикл по строкам
  for (int i = 0; i < rows; i++) {

    // Перебрать каждый столбец в выбранной строке
    for (int j = 0; j < cols; j++) {
        // Значение ячейки Pring
	System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
    }
    // Распечатать разрыв строки
    System.out.println(" ");
  }
}

Ниже приведен вывод, который мы получаем в консоли после запуска приведенного выше примера кода.

Чтение данных на листах файла Excel в Java

Чтение файла Excel в Java

Чтение определенного рабочего листа в Excel на Java

Вы также можете прочитать только определенный рабочий лист в файле Excel, выполнив следующие действия.

  • Загрузите файл Excel, используя класс Workbook.
  • Получите ссылку на нужный рабочий лист в объекте Worksheet с помощью метода Workbook.getWorksheets().get(index).
  • Получить количество строк и столбцов данных на листе.
  • Начать цикл для строк.
  • Запустите вложенный цикл для столбцов.
  • Считайте данные из каждой ячейки, используя метод Worksheet.getCells().get(rowIndex, columnIndex).getValue().

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

// Загрузить файл Excel
Workbook wb = new Workbook("workbook.xlsx");

// Получить ссылку на рабочий лист
Worksheet worksheet = wb.getWorksheets().get(0);

// Получить количество строк и столбцов
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();

// Цикл по строкам
for (int i = 0; i < rows; i++) {

  // Перебрать каждый столбец в выбранной строке
  for (int j = 0; j < cols; j++) {

    // Распечатать значение ячейки
    System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");

  }
  // Распечатать разрыв строки
  System.out.println(" ");
}

Получите бесплатную лицензию API

Вы можете использовать Aspose.Cells for Java без ограничений на пробную версию, получив бесплатную временную лицензию.

Вывод

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

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