Чтение и запись данных в Excel из Java: инструкция

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы в Java получить доступ к функционалу файлов Excel, идеально подойдёт библиотека Apache POI. Класс XSSFWorkbook предоставляет возможности создания и редактирования рабочих книг формата .xlsx, а XSSFSheet отвечает за управление листами рабочей книги. Ниже приведён пример записи данных в файл Excel:

Java
Скопировать код
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

import java.io.FileOutputStream;

public class ExcelExample {
    public static void main(String[] args) throws Exception {
        try (Workbook workbook = new XSSFWorkbook()) {
            Sheet sheet = workbook.createSheet("Example");
            Row row = sheet.createRow(0);
            row.createCell(0).setCellValue("Hello");  // Ячейка A1 со словом "Привет"
            row.createCell(1).setCellValue("World");  // И ячейка B1 с изложением "Мир"

            try (FileOutputStream out = new FileOutputStream("Example.xlsx")) {
                workbook.write(out);
            }  // Работа с файлом завершена, он закрыт
        }
    }
}

В этом примере создаётся лист с надписями "Привет" и "Мир" в первой строке, и сохраняется в файл Example.xlsx. Для работы с Apache POI библиотека должна быть включена в проект.

Кинга Идем в IT: пошаговый план для смены профессии

Переход на следующий этап

Чтение и запись файлов на уровне профессионала

Apache POI позволяет управлять файлами Excel с высокой степенью точности. Так, метод getLastRowNum() класса Sheet позволяет определить количество строк динамически. Именно мелочи и делают работу удобной.

Работа с большими файлами

Классы SXSSFWorkbook и SXSSFSheet предназначены для эффективной работы с большими файлами, значительно снижая расход памяти.

Безопасная работа с файлами: обработка исключений

При организации работы с файлами важно правильно использовать блоки try-catch для операций ввода-вывода и уметь корректно закрывать ресурсы. Это позволит улучшить читаемость и надёжность вашего кода.

Пошаговый пример чтения файла Excel

Рассмотрим процесс чтения файла Example.xlsx:

Java
Скопировать код
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.util.Iterator;

public class ExcelReadExample {
    public static void main(String[] args) throws Exception {
        try (FileInputStream fis = new FileInputStream("Example.xlsx");
             Workbook workbook = new XSSFWorkbook(fis)) {
            Sheet sheet = workbook.getSheetAt(0);
            Iterator<Row> rowIterator = sheet.iterator();
            
            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
                Iterator<Cell> cellIterator = row.cellIterator();
                
                while (cellIterator.hasNext()) {
                    Cell cell = cellIterator.next();
                    // Обработка различных типов данных в ячейках
                    System.out.print(cell.toString() + "; ");
                }
                System.out.println();  // Начало новой строки
            }
        }
    }
}

Углублённое изучение темы

Разновидности данных в Excel

Ячейки Excel могут содержать данные разных типов: числа, строки, булевы значения и формулы. DataFormatter позволяет представить данные в том же формате, что и в Excel.

Как добавить красок файлам Excel

Чтобы создать стильные документы в Excel, можно использовать CreationHelper, который без особых сложностей поможет вставить оформленные строки в ячейки через RichTextString.

Другие удобные библиотеки

Если задачи не требуют сложного взаимодействия с Excel, можно обратиться к JExcelApi или Xcelite. Они предлагают удобные аннотации для связывания Java объектов с таблицами Excel.

Визуализация

Представьте стол в офисе, полный различных документов. Чтение файла Excel — это как извлечение нужного документа из стопки, его изучение; а запись — как составление заметок и возвращение их обратно на место. Вот так выглядит идеальная организация данных:

🖥️🗄️(🔍📄 -> 👀 | 📃➕🖊️ -> ✍️ -> 🗂️📄)

Вот вам ваш офис для чтения и записи данных 🚀.

Библиотеки, которые вам могут пригодиться

Упрощённые операции с JExcelAPI

JExcelApi облегчает работу с Excel, убирая излишнюю сложность.

Xcelite на стороне вашей команды

Xcelite использует аннотации для упрощения операций CRUD, работая с Java-моделями данных, соответствующими структуре таблицы Excel.

Полезные материалы

  1. Apache POI – Java API для работы с документами Microsoft — универсальный интерфейс для работы с документами Microsoft Office.
  2. Сокращенное руководство по HSSF и XSSF от Apache POI — инструкции по реализации взаимодействия с документами Excel.
  3. Обсуждение работы с файлами Excel на Stack Overflow — различные обсуждения и практические примеры использования на Stack Overflow.
  4. JExcelApi — API для чтения, записи и модификации таблиц Excel.
  5. GitHub – dhorions/boxable — создание таблиц в Excel, расширяя функциональные возможности Apache POI.