Файлы MS Excel в основном используются для хранения табличных данных в виде рабочих листов. Часто огромные наборы данных также хранятся в файлах Excel. Поэтому вы можете столкнуться со сценарием, в котором вам нужно читать и извлекать данные из рабочих листов в файле Excel. Для этого в этой статье показано, как читать файл Excel в Java. Мы продемонстрируем, как программно читать весь файл Excel или только один рабочий лист.
- Библиотека Java для чтения файлов Excel
- Чтение данных из файла Excel
- Чтение рабочего листа в книге 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, выполнив следующие действия.
- Загрузите файл 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, используя документацию. Если у вас возникнут какие-либо вопросы, сообщите нам об этом через наш форум.