excel工具
撰寫常用utils,整合共用元件,減少開發速度
提供工具
讀取
客製化轉換(資料結構複雜)
Map資料轉換(資料結構單純,請教像是清單)
表頭與表身轉換(有客製化表頭,搭配清單系列)
寫檔案
客製化產製
<groupId>io.github.h8000572003</groupId>
<artifactId>excel-commons</artifactId>
<version>1.0.0</version>
讀取-客製化轉換
try (InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("general.xlsx")) {
final ExcelBook excelBook = ExcelBook.reader(resourceAsStream);
GeneralDTO reader = excelBook.reader(this::reader);
assertThat( reader.getITems().size()).isEqualTo(17);
}
private GeneralDTO reader(IExcelBook workbook) {
final IExcelSheet sheet = workbook.getSheet("work1");
List<GeneralITemDTO> generalITemDTOS = sheet.mapList((row, index) -> {
final GeneralITemDTO iTemDTO = new GeneralITemDTO(
new String[]{
row.getCell(0).getString(),
row.getCell(1).getString(),
row.getCell(2).getString(),
row.getCell(3).getString(),
row.getCell(4).getString(),
row.getCell(5).getString(),
row.getCell(6).getString(),
}
);
return iTemDTO;
});
GeneralDTO generalDTO = new GeneralDTO();
generalDTO.setITems(generalITemDTOS);
return generalDTO;
}
Map資料轉換(資料結構單純,請教像是清單)
try (InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("general2.xls")) {
final ExcelMapReaders excelMapReaders = new ExcelMapReaders("work1", "A", "B", "C", "D", "E", "F", "G");
final ExcelBook excelBook = ExcelBook.reader(resourceAsStream);
List<Map<String, Object>> reader = excelBook.reader(excelMapReaders);
assertThat( reader.size()).isEqualTo(17);
}
表頭與表身轉換
try (InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("customer.xls")) {
final ExcelPointReaders excelPointReaders = new ExcelPointReaders("work1");
excelPointReaders.addSpace(0, 1,"yyy");
excelPointReaders.addSpace(0, 3,"mon");
excelPointReaders.addExtract(0, "Data1");
excelPointReaders.addExtract(1, "Data2");
excelPointReaders.addExtract(2, "Data3");
excelPointReaders.addExtract(4, "Data4");
excelPointReaders.addExtract(5, "Data5");
final ExcelBook excelBook = ExcelBook.reader(resourceAsStream);
final List<ExcelPointValues> reader = excelBook.reader(excelPointReaders);
assertThat( reader.size()).isEqualTo(4);
}
Last updated
Was this helpful?