excel-kit/test/com/lxyer/excel/ExcelKitTest.java
2019-06-10 23:58:01 +08:00

85 lines
2.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.lxyer.excel;
import net.tccn.kit.poi.ExcelKit;
import org.apache.poi.ss.usermodel.Workbook;
import org.junit.Test;
import java.io.*;
import java.util.*;
import static java.util.Arrays.asList;
/**
* @author: liangxianyou at 2018/9/15 7:52.
*/
public class ExcelKitTest {
@Test
public void mapExport(){
// 数据List<T> T可以是map也可以是某个Javabean
List list = asList(
Map.of("name", "张三", "age", 12), //jdk9+语法创建Map并初始化数据
Map.of("name", "李四", "age", 11)
);
// 表头数据 k-vkmap的数据keyv表头展示的名称
LinkedHashMap heads = new LinkedHashMap();
heads.put("name", "姓名");
heads.put("age", "年龄");
// 将List<T> 数据写入到新创建的一个Excel工作薄对象中
//Workbook workbook = ExcelKit.getWorkbook(new File("target/abx2.xls"));
Workbook wb = ExcelKit.exportExcel(list, heads);
try {
// 存贮数据到文件中
wb.write(new FileOutputStream(new File("target/abx.xls")));
} catch (IOException e) {
e.printStackTrace();
}
}
//read excel by fields
@Test
public void readTest() throws IOException {
/*String sql1 = "select a, b, c from Sheet1";
String sql2 = "select a, b, c from Sheet1 where a=1 order by b";
String sql3 = "select a, b, c from Sheet1 s1, Sheet2 s2 order by";
String sql4 = "select a, b, c from Sheet1 s1, Sheet2 s2 where order by";
String select = sql1.substring(0,sql1.indexOf("from")).replace("select", "").replace(" ", "");
System.out.println(sql1.substring(0,sql1.indexOf("from")).replace("select", "").replace(" ", ""));
*/
String[] fields ={"name", "age"};
File file = new File("target/abx.xls");
List<Map> list = ExcelKit.readExcel(file, fields);
System.out.println("list.size: " + list.size());
list.forEach(x->{
x.forEach((k,v)->{
System.out.print(String.format("%s:%s \t", k, v));
});
System.out.println();
});
}
//read excel no fields
@Test
public void readTest2() throws IOException {
// 在不传 String[] fields 会把值从左到右分别赋值给 a...z,这样的key上
List<Map> list = ExcelKit.readExcel(new File("target/abx.xls"));
list.forEach(x->{
x.forEach((k,v)->{
System.out.print(String.format("%s:%s \t", k, v));
});
System.out.println();
});
}
}