【車輪を作る】簡単な万能Excel読み書きツールを作る
10956 ワード
皆さんは仕事や普段、簡単なフォーマットのExcelを読むことが多いのではないでしょうか.
shit!~卵が痛くて、前にほらを吹いたので、これを作って、まだ実用的で、みんなと分かち合います.
毎回シンプルタイプのExcelの読み書きにうんざり?~を恐れないで、流式の操作が好きですか?さあ~、lambda(javaの方が卵が痛いけど~)、さあ~これを見て~
ハハハ、java 8でなければ~~大丈夫です.黙って古い匿名クラスでこれらの機能を実現しましょう.しかし、これはあなたの使用を妨げるものではありません.ハハ~~~
何度も更新します~みんなも広く考えてほしいです~
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タイプ書き込み、注記名前 はMapkey-valueタイプ書き込み をサポートする書き込み時に読み取りと同様のフィルタ加工ソート等の書き方をサポートする .
2016/11/29更新 CreateMap By Key を追加不要な汎用 を除去する. xlsxサポート を追加
更新2016/11/8は、イベントモード に基づくデータフィルタリングおよび処理をサポートする変換である. Buildモード作成インスタンス に更新データフィルタリング、データ変換、およびデータソートコールバックインタフェース を追加する.チェーンset方式で を行う.
その他カスタム読み出しは、単純な正規化データフォーマット、すなわち典型的なヘッダフォーマット をサポートする.は、拡張 のためにWapperMapおよびWapperObjを継承することができる.はExcelFactory.getBeansを直接使用して取得し、WapperObjは独自に汎用 を追加します.注記Value対応列ヘッダー、Required対応正則、自分で正則式を書くか、RegHelper を直接使用することができます.エンティティbeanデータはhashMapより遅く、7 wのデータは800 ms遅く、正則減速速度(テストに正則が加わった) を加える.
使用方法の説明本プログラムは簡単なフォーマットのxlsファイルしか読めません.ファイルレイアウトは以下の通りです(標準的な行列構造): 見出し1
タイトル2
見出し3
foo
foo
foo
bar
bar
bar
baz
baz
baz
データベースエクスポートカスタムBeanタイプ書き方(xxx.classタイプ)
データベースエクスポートカスタムBeanタイプ書き方(自己実装パッケージ)
データベースをExcelの例に直接エクスポート
カスタムタイプをExcelの例にエクスポート
ExcelをMap例に読み込む
カスタムタイプにExcelを読み込む例
メール([email protected]) QQ: 985390927 weibo: @Alden_感情コントロール Blog: http://sweets.cf
shit!~卵が痛くて、前にほらを吹いたので、これを作って、まだ実用的で、みんなと分かち合います.
毎回シンプルタイプのExcelの読み書きにうんざり?~を恐れないで、流式の操作が好きですか?さあ~、lambda(javaの方が卵が痛いけど~)、さあ~これを見て~
ハハハ、java 8でなければ~~大丈夫です.黙って古い匿名クラスでこれらの機能を実現しましょう.しかし、これはあなたの使用を妨げるものではありません.ハハ~~~
何度も更新します~みんなも広く考えてほしいです~
githubアドレス:https://github.com/MatrixSeven/ExcelReads
みんなforkを歓迎して、みんなStarを歓迎して、更にみんなが多く意見or提案を出すことを歓迎して、もっと良い考えを提供します~~
ExcelReads(単純Excel汎用リーダライタ)
ExcelReadsとは何ですか?
記録を更新する
更新2017/01/05
更新2017/01/01
更新2016/11/30
2016/11/29更新
更新2016/11/8
その他
使用方法の説明
タイトル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 + "
")
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(" "));