Textboot — это автономное сервисное решение, предназначенное специально для работы с текстовыми данными, созданное с использованием Dubbo. Основная цель — выделение всех операций с текстами из бизнес-процессов, таких как импорт/экспорт Excel-файлов, создание PDF-документов, генерация Word-документов и так далее.
<!-- Версия может быть обновлена -->
<dependency>
<artifactId>textboot-api</artifactId>
<groupId>cn.wujw.textboot</groupId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dubbo:reference id="importService" interface="cn.wujw.textboot.service.TextBootService" protocol="dubbo"/>
Если вам не нужна проверка некоторых полей или отношений между ними в вашем Excel-файле, конфигурация не требуется (подробнее см. документацию интерфейса).
/**
* При конфигурировании этого импорта полей, следует использовать BasicModel и аннотацию ImportField для выполнения базовой проверки правил.
* Подробнее см. исходный код.
*/
public class Demo extends BasicModel {
@ImportField(required = true, column = "классное помещение")
private String className;
@ImportField(required = true, column = "имя ученика")
private String studentName;
}
/**
* Получить данные из Excel
* @param startIndex Начальная строка
* @param fileUrl Путь к файлу
* @param dataLocation Место передачи данных
* @return
*/
ResultBody urlToExcelData(int startIndex, String fileUrl, DataLocation dataLocation);
``` /**
* Получить данные из Excel с проверкой правил
* @param startIndex Начальная строка
* @param fileUrl Путь к файлу
* @param clazz Конфигурация проверки правил
* @param dataLocation Место передачи данных
* @return
*/
ResultBody urlToValidateExcelData(int startIndex, String fileUrl, ExcelRuleBuilder clazz, DataLocation dataLocation);
/**
* Экспортировать в Excel
* @param headData Данные заголовков
* @param listData Собранная информация о строках и столбцах
* @return
*/
ResultBody exportExcel(String[] headData, List<List<String>> listData); /**
* Экспортировать в Excel
* @param listData Собранная информация о строках и столбцах
* @return
*/
ResultBody exportExcel(List<List<String>> listData);
@SpringBootApplication
public class TextbootExampleApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(TextbootExampleApplication.class, args);
String url = "https://hj-upload.oss-cn-hangzhou.aliyuncs.com/exam/201901/201901281429045528.xlsx";
TextBootService textBootService = run.getBean(TextBootService.class);
long a = System.currentTimeMillis();
String s = textBootService.ping();
System.out.println(System.currentTimeMillis() - a);
System.out.println(s);
long b = System.currentTimeMillis();
ResultBody data = textBootService.urlToExcelData(0, url, DataLocation.SYNC);
System.out.println(System.currentTimeMillis() - b);
System.out.println(data);
long c = System.currentTimeMillis();
ResultBody data1 = textBootService.urlToExcelData(0, url, DataLocation.REDIS);
System.out.println(System.currentTimeMillis() - c);
System.out.println(data1);
}
}
```### Экспорт файла
Экспорт файла состоит в сборке данных, где вызывающая сторона должна четко понимать формат сборки экспортируемых данных.
* `headData` — это данные для заголовка таблицы, используемые массивом для определения порядка столбцов. Например, head = ["Имя", "Возраст", "Пол", "Класс"], тогда формат заголовка будет следующим:
| Имя | Возраст | Пол | Класс |
|-------|---------|-------|-------|
| | | | |* `listData` — данные содержимого, собираются согласно порядку полей заголовка, создавая список `List<String>` для каждой строки. Для нескольких строк создаётся список `List<List<String>>`. Например, если требуется экспортировать информацию о двух людях — Чжан Сан и Ли Си, то формат будет следующим:```java
List<List<String>> dataList = new ArrayList<>();
List<String> zhangSan = new ArrayList<>();
zhangSan.add("Zhang San");
zhangSan.add("20");
zhangSan.add("Мужской");
zhangSan.add("3年级2班");
dataList.add(zhangSan);
List<String> liSi = new ArrayList<>();
liSi.add("Li Si");
liSi.add("21");
liSi.add("Женский");
liSi.add("3年级2班");
dataList.add(liSi);
Затем можно использовать соответствующий интерфейс для создания файла Excel, который вернет путь к файлу на OSS.
Имя | Возраст | Пол | Класс |
---|---|---|---|
Zhang San | 20 | Мужской | 3年级2班 |
Li Si | 21 | Женский | 3年级2班 |
Примечание: В таблице столбец "Класс" содержит китайский текст, который может быть заменён на русский эквивалент, если требуется полный перевод:
Имя | Возраст | Пол | Класс |
---|---|---|---|
Zhang San | 20 | Мужской | 3 класс 2 |
Li Si | 21 | Женский | 3 класс 2 |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )