Чтение Excel (xls, xlsx) файла в Java с помощью Apache POI

Все знакомы с табличным процессором Excel, который входит в стандартный пакет Microsoft Office. Напрямую в Excel очень удобно и приятно работать, но мало кто знает, что в Java этот процесс не менее приятный и увлекательный.

Последнее время мне приходилось программно парсить файлы формата .xls и .xlsx. Чтобы осуществить парсинг Excel-файла, понадобилась библиотека Apache POI. С помощью этой библиотеки можно парсить не только файлы в формате .xls, но и DOC, PPT, а также форматы, которые появились в версии Microsoft Office 2007.

В этой статье мы познакомимся с чтением данных из xls или xlsx файла в Java с помощью библиотеки Apache POI. Как всегда, немного теории по основам и практика на примере чтения простого xls файла. Пример создания нового Excel файла представлен здесь.

 Подключаем библиотеку для работы с Excel в Java

Для начала нужно создать Maven-проект и в файле pom.xml прописать следующий код зависимостей

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

Библиотека Apache POI предоставляет простой в использовании API для чтения любого xls файла. Ниже мы рассмотрим наиболее используемые классы для чтения содержимого Excel таблиц:

Код для чтения Excel документов в формате xls

В листинге ниже приведен типичный пример инициализации HSSFWorkbook и HSSFSheet для считывания данных из .xls файлов.

Код для чтения Excel документов в формате .xlsx

Ниже приведен фрагмент кода для инициализации работы с Excel файлами в формате .xlsx:

Практика. Создаем простой Excel для работы

1

Пишем парсер на Java

Назовем класс ExcelParser.java с методом parse, который принимает текстовый параметр fileName

Создаем главный класс-ранер, где и запустим парсер:

Результат выполнения парсера Excel

Работа с запароленным Excel файлом

В Apache POI с каждой новой версией добавляются новые возможности по работе с закрытыми/запароленными файлами. Например, мы может работать с защищенными файлами XLS (используя org.apache.poi.hssf.record.crypt) и защищенными файлами XLSX (с помощью org.apache.poi.poifs.crypt).

Если вы используете HSSF (для файла XLS), то проверить является ли он запаролленым нам поможет метод isWriteProtected(). А для работы с ним необходимо указать пароль перед самым открытием файла:

После этого можем работать с файлом.

Для XSSF нам понадобится что-то вроде такого:

При работе с более новыми версиями Apache POI, можно просто указать пароль при создании Workbook:

Этот код будет работать как для HSSF, так и для XSSF.

Также смотрите примеры чтения Word документа и создания нового документа Word с помощью Apache POI.

Подписывайтесь на обновления!

2 thoughts to “Чтение Excel (xls, xlsx) файла в Java с помощью Apache POI”

  1. public class MainClass {

    public static void main(String[] args){
    System.out.println(Parser.parse(«excel.xls»));
    }

    }

    вот это дело не работает. Не понятно какой импорт нужен

Добавить комментарий для Алексей Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *