标签:分享 blank 表达 https 条件 通用 功能 下标越界 hashcode
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel?
shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下。
厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式操作?来~,喜欢用lambda(虽然java的比较蛋疼~),来~看这个~
哈哈,如果你用的不是java8~~没问题,那就默默地用老方式匿名类来实现这些功能吧,但是这并不妨碍您的使用哈哈~~~
更新多次~希望大家也能够集思广益~
欢迎大家fork,欢迎大家Star,更欢迎大家多提意见or建议,提供更好的想法~~
标题1 | 标题2 | 标题3 |
---|---|---|
foo | foo | foo |
bar | bar | bar |
baz | baz | baz |
1 ExcelFactory.saveExcel( 2 UNPOOLED_DATA_SOURCE.getConnection(). 3 prepareStatement("select * FROM users_info limit 1000").executeQuery(), 4 "\u5317\u4eac__Excel.xlsx", 5 AS.class) 6 .FilterCol(() -> new String[]{"updatetime"}) 7 .Filter((AS o) ->o.getA().length() > 3) 8 .Save();
ExcelFactory.saveExcel( UNPOOLED_DATA_SOURCE.getConnection(). prepareStatement("select * FROM users_info limit 1000").executeQuery(), "\u5317\u4eac__Excel.xlsx", res -> { AS a = new AS(); a.setA(res.getString("name")); return a; }) .FilterCol(() -> new String[]{"updatetime"}) .Filter((AS o) ->o.getA().length() > 3) .Save();
ExcelFactory.saveExcel( UNPOOLED_DATA_SOURCE.getConnection(). prepareStatement("select * FROM users_info limit 10000"). executeQuery(), "知乎导出Excel.xlsx") //过滤字段 .FilterCol(() -> new String[]{"updatetime"}) //过滤数据条件 .Filter((HashMap<String, String> o) -> o.get("address").equals("\u5317\u4eac")) .Save();
List<A> aa = new ArrayList<>(); aa.add(new A("a", "b")); aa.add(new A("aa", "bb")); ExcelFactory.saveExcel(aa, System.getProperty("user.dir").concat("\\Save.xlsx")) ///这里能够处理每一行数据 .Process((A a) -> a.setA("xxxxxxx")) //过滤列 .FilterCol(() -> new String[]{"B"}) //根据某个字段来处理数据时候丢弃 .Filter((A a) -> a.getA().length() > 1) //排序 .Sort((A o1,A o2 ) -> o1.getAge()>o2.getAge()?1:o1.getAge()==o2.getAge()?0:-1) .Save();
1 List<Map<String,String>> data=ExcelFactory.getBeans(System.getProperty("user.dir").concat("\\测试.xls"), 2 new ResWrapperMap() { 3 @Override//配置Excel属性 4 protected void LoadConfig(Config config) { 5 config.setContent_row_start(3); 6 config.setTitle_row(2); 7 } 8 }).//这里能够处理每一行数据 9 Process((HashMap<String, String> o) -> System.out.println(o + "\n") 10 //这里能够处理时候过滤某一列 11 ).FilterCol(() -> new String[]{} 12 //这里能根据某一行的某一列的内容来取舍这行数据 13 ).Filter((HashMap<String, String> o) -> o.get("创建人") != null && o.get("创建人").length() > 5 14 //排序 15 ).Sort((o1, o2) -> o1.hashCode()>o2.hashCode()?1:hashCode()==o2.hashCode()?0:-1).Create(); 16 17 //使用 .CreateMap(key_v) 生成Map<Key,Map>类型数据
1 Map<String,Seven> map=new ResWrapperObj(Seven) { 2 @Override 3 protected void LoadConfig(Config config) { 4 config.setContent_row_start(3); 5 config.setTitle_row(2); 6 } 7 }). 8 Process((HashMap<String, String> o) -> {} 9 ).FilterCol(() -> new String[]{} 10 ).Filter((HashMap<String, String> o) -> o.get("创建人") != 11 null &&o.get("创建人").length() > 4).<Map>CreateMap("创建人"));
标签:分享 blank 表达 https 条件 通用 功能 下标越界 hashcode
原文地址:http://www.cnblogs.com/seven007/p/6252403.html