1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/stupid1t-poi-excel

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README-import.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 07.03.2025 01:38 2a71970

Импорт Map

Автоматическое отображение столбцов

public class Test {
    public void parseMap1() {
        name.set("Быстрый импорт в Map, автоматическое отображение столбцов");
        PoiResult<HashMap> parse = ExcelHelper.opsParse(HashMap.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 0)
                // Автоматическое отображение столбцов, значения полей A, B, C, D
                .opsColumn(true).done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о непрохождении проверки
            System.out.println(parse.getErrorInfoString());
        }
        // Вывод распарсенных данных
        parse.getData().forEach(System.out::println);
    }
}

После автоматического отображения столбцов, замена конкретных столбцов

public class Test {
    public void parseMap2() {
        name.set("Быстрый импорт в Map, автоматическое отображение столбцов, замена конкретных столбцов");
        PoiResult<HashMap> parse = ExcelHelper.opsParse(HashMap.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 0)
                .opsColumn(true)
                .field(Col.H, "Значение H-столбца округлено до двух знаков после запятой").type(double.class).scale(2)
                .done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о непрохождении проверки
            System.out.println(parse.getErrorInfoString());
        }
        // Вывод распарсенных данных
        parse.getData().forEach(System.out::println);
    }
}
```### Без автоматического отображения, извлечение конкретных столбцов```java
public class Test {
    public void parseMap3() {
        name.set("Быстрое преобразование в map, без автоматического отображения, извлечение указанных столбцов");
        PoiResult<HashMap> parse = ExcelHelper.opsParse(HashMap.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 0)
                .opsColumn()
                // 1. Удаление пробелов с обоих сторон, 2. Недопустимо пустое значение, 3. Значение по умолчанию, 4. Валидация регулярным выражением 
                .field(Col.A, "name").trim().notNull().defaultValue("张三").regex("中青旅\\d{1}")
                // Сохранение двух знаков после запятой
                .field(Col.H, "score").scale(2)
                // Изображение
                .field(Col.J, "img").type(byte[].class)
                .done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о непрошедших проверку значениях
            System.out.println(parse.getErrorInfoString());
        }
        // Вывод распарсенных данных
        parse.getData().forEach(System.out::println);
    }
}
```# Импорт объекта### Автоматическое отображение

```java

@Test
public class Test {
    public void parseBean1() {
        name.set("Автоматическая отображаемая колонка");
        PoiResult<ProjectEvaluate> parse = ExcelHelper.opsParse(ProjectEvaluate.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 1)
                .opsColumn(true).done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о непрошедших проверку данных
            System.out.println(parse.getErrorInfoString());
        }

        // Вывод распарсенных данных
        System.out.println("Количество строк данных: " + parse.getData().size());
        parse.getData().forEach(System.out::println);
    }
}

Преобразование автоматического отображения

public class Test {
    @Test
    public void parseBean2() {
        name.set("Автоматическая отображаемая колонка, замена указанной колонки");
        PoiResult<ProjectEvaluate> parse = ExcelHelper.opsParse(ProjectEvaluate.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 1)
                .opsColumn(true)
                .field(Col.H, ProjectEvaluate::getScore).type(double.class).scale(2)
                .done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о непрошедших проверку данных
            System.out.println(parse.getErrorInfoString());
        }
        // Вывод распарсенных данных
        parse.getData().forEach(System.out::println);
    }
}
```### Отключение автоматического отображения, извлечение указанных колонок```java
public class Test {
    @Test
    public void parseBean3() {
        name.set("Не автоматическое отображение, извлечение указанных столбцов");
        PoiResult<ProjectEvaluate> parse = ExcelHelper.opsParse(ProjectEvaluate.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 0)
                .opsColumn()
                .field(Col.A, ProjectEvaluate::getProjectName).map((val) -> {
                    // Пользовательская проверка, выбрасывание исключения
                    if (val == null) {
                        throw PoiException.error("Название проекта не может быть пустым!");
                    }
                    return val;
                })
                .field(Col.H, ProjectEvaluate::getScore)
                .done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о неудовлетворении условий
            System.out.println(parse.getErrorInfoString());
        }
        // Вывод распарсенных данных
        parse.getData().forEach(System.out::println);
    }
}
```### Извлечение указанных столбцов, проверка и преобразование```java
public class Test {
    @Test
    public void parseBean4() {
        name.set("Извлечение указанных столбцов, проверка и преобразование");
        Map<String, Integer> cityMapping = new HashMap<>();
        cityMapping.put("Сиань", 1);
        cityMapping.put("Пекин", 2);

        PoiResult<ProjectEvaluate> parse = ExcelHelper.opsParse(ProjectEvaluate.class)
                .from("src/test/java/excel/parse/excel/simpleExport.xlsx")
                // Указание области данных
                .opsSheet(0, 1, 1)
                .opsColumn()
                .field(Col.A, "projectName").trim().notNull().defaultValue("Zhang San").regex("China Youth Travel Agency \\d{1}")
                .field(Col.D, ProjectEvaluate::getProvince)
                // Преобразование значений с использованием отображения
                .field(Col.E, "cityKey").notNull().map(cityMapping::get)
                .done()
                .parse();
        if (parse.hasError()) {
            // Вывод информации о непрошедших проверку записях
            System.out.println(parse.getErrorInfoString());
        }
        // Вывод распарсенных данных
        parse.getData().forEach(System.out::println);
    }
}

Ошибка выводится следующим образом:

[A2]: Неверный формат
[A3]: Неверный формат
[A4]: Неверный формат
[A5]: Неверный формат

Обработка больших данных в несколько этапов```java

public class Test { @Test public void parseBean5() { name.set("Обработка больших данных в несколько этапов"); ExcelHelper.opsParse(ProjectEvaluate.class) .from("src/test/java/excel/parse/excel/simpleExport.xlsx") // Указание области данных .opsSheet(0, 1, 1) .opsColumn(true).done() // Обрабатывать по два элемента за один раз .parsePart(2, (result) -> { if (result.hasError()) { // Вывод информации о непрошедших проверку записях System.out.println(result.getErrorInfoString()); } }); } }

                    System.out.println("Количество строк данных: " + result.getData().size());
                    result.getData().forEach(System.out::println);
                });
    }
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/stupid1t-poi-excel.git
git@api.gitlife.ru:oschina-mirror/stupid1t-poi-excel.git
oschina-mirror
stupid1t-poi-excel
stupid1t-poi-excel
master