Чтение и запись данных в Excel из Java: инструкция
Быстрый ответ
Чтобы в Java получить доступ к функционалу файлов Excel, идеально подойдёт библиотека Apache POI. Класс XSSFWorkbook
предоставляет возможности создания и редактирования рабочих книг формата .xlsx
, а XSSFSheet
отвечает за управление листами рабочей книги. Ниже приведён пример записи данных в файл Excel:
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 библиотека должна быть включена в проект.
Переход на следующий этап
Чтение и запись файлов на уровне профессионала
Apache POI позволяет управлять файлами Excel с высокой степенью точности. Так, метод getLastRowNum()
класса Sheet
позволяет определить количество строк динамически. Именно мелочи и делают работу удобной.
Работа с большими файлами
Классы SXSSFWorkbook
и SXSSFSheet
предназначены для эффективной работы с большими файлами, значительно снижая расход памяти.
Безопасная работа с файлами: обработка исключений
При организации работы с файлами важно правильно использовать блоки try-catch
для операций ввода-вывода и уметь корректно закрывать ресурсы. Это позволит улучшить читаемость и надёжность вашего кода.
Пошаговый пример чтения файла Excel
Рассмотрим процесс чтения файла Example.xlsx
:
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.
Полезные материалы
- Apache POI – Java API для работы с документами Microsoft — универсальный интерфейс для работы с документами Microsoft Office.
- Сокращенное руководство по HSSF и XSSF от Apache POI — инструкции по реализации взаимодействия с документами Excel.
- Обсуждение работы с файлами Excel на Stack Overflow — различные обсуждения и практические примеры использования на Stack Overflow.
- JExcelApi — API для чтения, записи и модификации таблиц Excel.
- GitHub – dhorions/boxable — создание таблиц в Excel, расширяя функциональные возможности Apache POI.