sanri-excel-poi — это открытый инструмент для корпоративного использования, предназначенный для решения проблем с импортом и экспортом данных из Excel. Инструмент был впервые выпущен в 2017 году и прошёл двухлетний период тестирования в онлайн-среде.
Инструмент помогает решать проблемы с экспортом данных, такие как медленная скорость экспорта, пустые строки, пробелы, точность числовых данных, преобразование дат и проблемы с формулами Excel.
Адрес блога: https://blog.csdn.net/sanri/article/details/100601578
JavaDoc: https://apidoc.gitee.com/sanri/sanri-excel-poi
<dependency>
<groupId>com.sanri.excel</groupId>
<artifactId>sanri-excel-poi</artifactId>
<version>1.0-RELEASE</version>
</dependency>
В настоящее время необходимо самостоятельно загрузить исходный код или использовать уже собранный пакет release: https://github.com/sanri1993/sanri-excel-poi/releases/tag/v1.0-RELEASE
<!-- Excel poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
<!--apache commons -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.2</version>
</dependency>
<!-- slf4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
// Определение класса для экспорта
@ExcelExport
@Data
public class Simple {
@ExcelColumn(value = "姓名",order = 0)
private String name;
}
// Получение данных
List<Simple> datas = new ArrayList();
datas.add(new Simple());
// Экспорт Excel
ExcelExportWriter excelExportWriter = new ExcelExportWriter(Simple.class);
excelExportWriter.export(simpleList); // Эта операция только генерирует данные Workbook, пользователь должен решить, куда их выводить
// Запись в файл потока
excelExportWriter.writeTo(new FileOutputStream("d:/test/"+System.currentTimeMillis()+".xlsx"));
// Или запись в поток ответа
excelExportWriter.writeTo(response.getOutputStream());
Обратите внимание, что атрибут order
не вызывает проблем при экспорте, но при использовании импорта индексы должны начинаться с 0.
// Определение класса для импорта
@ExcelImport(startRow = 1)
@Data
public class Simple {
@ExcelColumn(value = "姓名",order = 0)
private String name;
}
// Чтение входного потока
InputStream fileInputStream = new FileInputStream("simple.xlsx");
// Создание обработчика ошибок, можно использовать обработчик по умолчанию
ErrorRowHandler collectErrorRowHandler = new CollectErrorRowHandler();
// Импорт данных
List<Simple> simples = ExcelImportUtil.importData(fileInputStream, Simple.class,collectErrorRowHandler);
// Версия Excel для экспорта, возможные значения ExcelVersion.EXCEL2007,ExcelVersion.EXCEL2003
ExcelVersion version() default ExcelVersion.EXCEL2007;
// Установить высоту строки заголовка, когда установлен заголовок
short titleRowHeight() default 40;
// Высота строки заголовков, то есть высота строки описания столбца
short headRowHeight() default 30;
// Высота каждой строки данных
short bodyRowHeight() default 25;
// Автоматическое определение ширины, Excel автоматически определяет ширину для китайского языка
boolean autoWidth() default true;
// Максимальное количество данных на листе, установите -1 для неограниченного количества, максимум 60 000 строк для версии 2003 года
int sheetMaxRow() default -1;
// Режим быстрого экспорта, используйте новый SXSSFWorkbook(rowAccessWindowSize) объект книги
boolean fastModel() default true;
// Параметр настройки режима быстрого экспорта, обычно достаточно значения по умолчанию
int rowAccessWindowSize() default 1000;
// Начальная строка данных, обычно устанавливается в 1, начиная с 0
int startRow();
// Поддерживаемые версии для импорта, по умолчанию поддерживаются обе
ExcelVersion[] support() default {ExcelVersion.EXCEL2003,ExcelVersion.EXCEL2007};
// Значение для экспорта китайских заголовков столбцов, не используется для импорта
String value();
// Порядок импорта, по умолчанию начинается с 0, не используется для экспорта
int order() default -1;
// Ширина столбца в единицах Excel
int width() default -1;
// Используйте количество символов для определения ширины, один китайский символ считается одним символом
int charWidth() default -1;
// Использовать пиксели для определения ширины
int pxWidth() default -1;
// Отметьте текущий столбец как китайский столбец при использовании автоматической ширины
boolean chineseWidth() default false;
// Скрывать ли текущий столбец при экспорте
boolean hidden() default false;
// Удалить ли пробелы перед и после текущего столбца при импорте
boolean trim() default true; ### Тип ячейки при экспорте, доступные значения: CELL_TYPE_NUMERIC, CELL_TYPE_STRING, CELL_TYPE_BLANK, CELL_TYPE_BOOLEAN
`CellType cellType() default CellType.CELL_TYPE_STRING;`
// Формат даты при импорте и экспорте
`String pattern() default "yyyy-MM-dd";`
// Настройка точности чисел при импорте и экспорте; применяется к десятичным числам
`int precision() default -1;`
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )