Проект mofum-msdom
Этот класс инструментов основан на Apache POI 4.0 SAX и использует пользовательский режим. Он обеспечивает простоту использования, сохраняя при этом гибкость. Благодаря реализации на основе Sax, потребление памяти относительно невелико, что помогает избежать OutOfMemoryError (OOM).
Принцип чтения данных: данные считываются в режиме событий, где каждая операция чтения сопровождается освобождением одной строки данных. Весь процесс анализа занимает только память, необходимую для обработки одной строки данных.
Принцип записи данных: часть данных временно сохраняется в памяти, а затем записывается на жёсткий диск в соответствии с временным порядком. Этот процесс называется «кэшированием».
Часть Excel:
<dependency>
<groupId>com.mofum.msdom</groupId>
<artifactId>mofum-msdom</artifactId>
<version>1.0.2.3</version>
</dependency>
В настоящее время поддерживается только импорт и экспорт файлов Excel версии XLSX (Excel 2007). Поддержка форматов CVS и XLS пока отсутствует.
Реализована проверка обязательных параметров.
Поддерживается фильтр данных (DataFilter).
Доступен настраиваемый валидатор (Validator).
Предусмотрен режим чтения файлов (File).
Доступна функция постраничного вывода (PageAnnotationExcelWriterImpl).
Имеется режим вывода с аннотациями (AnnotationExcelWriterImpl).
Существует режим смешанного вывода нескольких типов аннотаций (MultiAnnotationExcelWriterImpl).
Обеспечена поддержка преобразования типов Excel (ExcelConvert).
Поддержаны режимы добавления и смешанного вывода на нескольких листах.
Возможно объединение ячеек.
Предоставлено множество стилей.
Данные, выводимые на печать, могут быть отформатированы.
Будет поддерживаться режим потокового чтения.
Планируется поддержка шаблонов для экспорта и их обратной сериализации в объекты.
Будут добавлены настройки, связанные с шаблонами.
Появится возможность инициализировать стандартные конфигурации Excel, такие как DataFilter, Validator, ExcelConvert и TypeConvert. Эти конфигурации будут доступны глобально и могут быть настроены в соответствии с требованиями бизнеса. Также можно использовать существующие преобразователи по умолчанию и поля конфигурации. Они не конфликтуют друг с другом.
(«√» означает завершённую функцию, «-» указывает на то, что функция находится в разработке.)
Тестовые примеры можно найти в каталоге com.mofum.msdom.excel.demo.
JDK версия: 1.8
Операционная система: Windows 7
Конфигурация JVM: -Xms1m -Xmx5m
Данные тестирования: 100 000 строк данных (20 столбцов), см. вложение (sxxf1.xlsx)
Минимальная требуемая память JVM: 5M
Версия JDK: 1.8
Операционная система: Windows 7
Конфигурация JVM: -Xms1m -Xmx5m
Минимальная требуемая память JVM: 5M
Инструмент основан на POI 4.0 и предназначен для импорта и экспорта Excel.
Пример кода для чтения тестовой модели:
/**
* Пример чтения тестовой модели
*/
public class ReadDemo {
public static void main(String[] args) throws IOException {
// Создаём Reader для анализа тестовой модели
IExcelReader<TestModel, TestModelCallback> reader = new AnnotationExcelReaderImpl<TestModel, TestModelCallback>();
// Используем POI для чтения файла Excel
reader.read(new File("001.xlsx"), TestModel.class, new TestModelCallback());
}
}
Подробные инструкции см. в WIKI-документации.
Пример кода для записи данных:
public class WriteDemo {
public static void main(String[] args) throws IOException {
// Настраиваем данные для записи
IExcelWriter writer = new AnnotationExcelWriterImpl<TestModel>();
// Записываем данные
writer.dataType(TestModel.class).start(out).write(datas).end();
}
}
Подробные инструкции см. в WIKI-документации.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )