<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【造輪子】打造一個簡單的萬能Excel讀寫工具

      大家工作或者平時是不是經常遇到要讀寫一些簡單格式的Excel?

      shit!~很蛋疼,因為之前吹牛,就搞了個這東西,還算是挺實用,和大家分享下。

      厭煩了每次搞簡單類型的Excel讀寫?不怕~來,喜歡流式操作?來~,喜歡用lambda(雖然java的比較蛋疼~),來~看這個~

      哈哈,如果你用的不是java8~~沒問題,那就默默地用老方式匿名類來實現這些功能吧,但是這并不妨礙您的使用哈哈~~~

      更新多次~希望大家也能夠集思廣益~

      github地址:https://github.com/MatrixSeven/ExcelReads

      歡迎大家fork,歡迎大家Star,更歡迎大家多提意見or建議,提供更好的想法~~

      ExcelReads(簡單Excel通用讀寫器)

      ExcelReads是什么?

      • 這是一個通用的簡單的Excel讀取器
      • 支持自定義JavaBean實體讀取和HashMap自動讀取
      • 支持自定義擴展
      • 支持自定義Sheet范圍,數據開始行數
      • 支持數據庫查詢直接導出Excel(Map/Object)
      • 支持正則過濾數據格式
      • JavaBean實體支持使用注解添加正則規則校驗,HashMap支持數組規則校驗
      • 依賴POI,使用Maven構建

      更新紀錄

      更新2017/01/05

      • 修復據庫查詢的導出(Object)遞歸越棧問題
      • 增加新的xxx.Class定義類型導出,操作更簡單
      • 導出注解支持(自己使用seven.savewapper.anno.ExcelAnno類型注解)

      更新2017/01/04

      • 修復據庫查詢的導出(Map)空指針&下標越界問題
      • 修復在Filter數據后出現空行問題
      • 丟入Result參數后的操作就如同操作Map/Object一樣

      更新2017/01/01

      • 增加ResExprotDBMap&ResExprotDBObj用于支持數據庫導出
      • 支持基于數據庫查詢的導出(Map),直接放入Result對象即可
      • 支持基于數據庫查詢的導出(Object),直接放入Result對象即可

      更新2016/11/30

      • 增加了簡單類型得寫入,生成xls/xlsx
      • 直接JavaBean類型寫入,注解命名
      • 支持Map key-value類型寫入
      • 寫入時支持和讀取一樣得過濾加工排序等寫法

      更新2016/11/29

      • 增加CreateMap By Key
      • 去除無用泛型
      • 增加xlsx支持

      更新2016/11/8

      • 支持數據過濾和處理是轉換,基于事件模式
      • 更新為Build模式創建實例
      • 增加數據過濾、數據轉換和數據排序回調接口
      • 采用鏈式set方式進行

      其他

      • 自定義讀取支持出簡單的規范化數據格式,即典型的表頭格式
      • 可以繼承 WapperMap 和 WapperObj進行擴展
      • 直接使用ExcelFactory.getBeans進行獲取,WapperObj則自己添加泛型
      • 注解Value對應列標題,Required對應正則,可自己寫正則表達式或者直接使用RegHelper
      • 實體bean數據要比hashMap慢,7w條數據慢800ms,加入正則減慢速度(測試中加入了正則)

      使用方法說明

      1. 本程序只能讀取簡單格式的xls文件,文件布局如下(標準的行列結構):
      標題1標題2標題3
      foo foo foo
      bar bar bar
      baz baz baz

      數據庫導出自定義Bean類型寫法(xxx.Class類型)

      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();

       

      數據庫導出自定義Bean類型寫法(自己實現包裝)

      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();

       

      數據庫直接導出到Excel例子

      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();

       

      自定義類型導出到Excel例子

      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();

       

      讀取Excel到Map例子

       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>類型數據

       

      讀取Excel到自定義類型的例子

       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("創建人"));

       

       

      posted @ 2017-01-05 15:34  菜狗_無知  閱讀(2069)  評論(8)    收藏  舉報
      主站蜘蛛池模板: 欧美肥老太wbwbwbb| 国产精品一区二区久久精品无码| 一区二区三区在线色视频| 蜜桃伦理一区二区三区| 国产卡一卡二卡三免费入口| 国产精品午夜无码AV天美传媒| 国产精品久久久久鬼色| 少妇被爽到高潮喷水久久欧美精品| 久久夜色噜噜噜亚洲av| av天堂午夜精品一区| 国产自拍偷拍视频在线观看 | 亚洲精品日韩在线丰满| 亚洲日本精品一区二区| 人成午夜大片免费视频77777| 欧乱色国产精品兔费视频| 岛国最新亚洲伦理成人| 免费无码高H视频在线观看| 亚洲国产成人精品区综合| 人妻中文字幕不卡精品| 久久亚洲精品11p| 综合亚洲网| 少妇私密会所按摩到高潮呻吟| 亚洲国产午夜精品福利| 四虎av永久在线精品免费观看| 国内综合精品午夜久久资源| 亚洲精品免费一二三区| 亚洲国产高清aⅴ视频| 国产成人AV性色在线影院| 亚洲中文字幕无码中字| 国产自在自线午夜精品| 国产AV无码专区亚洲AV紧身裤| 蜜臀久久综合一本av| 内射合集对白在线| 成 人 色 网 站免费观看| 中国女人高潮hd| 亚洲天堂成年人在线视频| 国产精品乱子乱xxxx| 国产中文字幕在线一区| 欧美牲交a欧美牲交aⅴ免费真| 久久综合老鸭窝色综合久久| 伊人久久大香线蕉av五月天|