Полное руководство: Apache POI – как получить все рабочие листы из потока ввода файла

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

Метод 1: использование WorkbookFactory

import org.apache.poi.ss.usermodel.*;
public class WorksheetExtractor {
    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new FileInputStream("path/to/file.xlsx"))) {
            int numberOfSheets = workbook.getNumberOfSheets();
            for (int i = 0; i < numberOfSheets; i++) {
                Sheet sheet = workbook.getSheetAt(i);
                System.out.println("Sheet Name: " + sheet.getSheetName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Метод 2: использование рабочей книги

import org.apache.poi.ss.usermodel.*;
public class WorksheetExtractor {
    public static void main(String[] args) {
        try (Workbook workbook = new XSSFWorkbook(new FileInputStream("path/to/file.xlsx"))) {
            int numberOfSheets = workbook.getNumberOfSheets();
            for (int i = 0; i < numberOfSheets; i++) {
                Sheet sheet = workbook.getSheetAt(i);
                System.out.println("Sheet Name: " + sheet.getSheetName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Метод 3: использование WorkbookFactory с фильтром

import org.apache.poi.ss.usermodel.*;
public class WorksheetExtractor {
    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new FileInputStream("path/to/file.xlsx"))) {
            workbook.forEach(sheet -> {
                if (sheet.getSheetName().startsWith("Sheet")) { // Filter condition
                    System.out.println("Sheet Name: " + sheet.getSheetName());
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Метод 4. Использование итератора

import org.apache.poi.ss.usermodel.*;
public class WorksheetExtractor {
    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new FileInputStream("path/to/file.xlsx"))) {
            Iterator<Sheet> sheetIterator = workbook.sheetIterator();
            while (sheetIterator.hasNext()) {
                Sheet sheet = sheetIterator.next();
                System.out.println("Sheet Name: " + sheet.getSheetName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

В этой статье мы рассмотрели различные методы извлечения всех листов из файла Excel с помощью Apache POI. Мы предоставили примеры кода с пояснениями для каждого метода. В зависимости от ваших конкретных требований вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Гибкость и простота использования Apache POI делают его отличным выбором для работы с электронными таблицами Excel на Java.

Не забудьте импортировать необходимые библиотеки Apache POI и заменить «path/to/file.xlsx» фактическим путем к файлу Excel. С помощью этих методов вы можете легко извлечь все рабочие листы из потока ввода файлов с помощью Apache POI.