タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

javaとexcelに関するHayatoのブックマーク (6)

  • Excel方眼紙を支える技術 - たけぞう瀕死ブログ

    最近仕事Excel方眼紙を読んだり書いたりするプログラムばかり書いているのですが、そんなExcel方眼紙を支える最新のJava技術を紹介したいと思います。 なにはなくともPOI JavaExcelと言えば外せないのがPOIです。以前はJExcel APIという対抗馬もあったのですが、Excel 2007に対応していないので現在ではPOIが唯一の選択肢といっていいでしょう。 POIは非常にプリミティブなAPIを提供するライブラリで、使いこなすにはそれなりの修練が必要です。そのため、可能であれば実際の読み書きには後述するXLSBeansやjXLSなどを使った方がよいでしょう。ただし、jXLSのようなテンプレートエンジンでは細かいセルのスタイル設定などはできないため、POIを併用しないとならないケースも多いです。Excel方眼紙を支える技術のベースとして押さえておくべきライブラリといえるでし

    Excel方眼紙を支える技術 - たけぞう瀕死ブログ
    Hayato
    Hayato 2014/01/06
    タイトルは若干釣りである点に注意。
  • 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その1 メタプログラミングとは?:良いコ-ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社

    良いコ-ドへの道―普通のプログラマのためのステップアップガイド 第5回メタプログラミング―Excelを使ったDSLを作ろう―その1 メタプログラミングとは? おっす、おらメタプログラマ! 前回まで「良いコードとは?」という観点から、「⁠名前付け」「⁠スコープ」「⁠処理の分割」といったプログラミングで必須の基礎内容を解説してきました。今回は少し趣向を変えてメタプログラミングを取り上げます。メタプログラミングは「プログラミングをプログラムする」と言われますが、なんだかつかみどころがない概念に感じませんか? 実際、「⁠メタプログラミングとは何ですか?」と聞くと、人によって回答がまちまちです。そんなメタプログラミングですが、使いこなすとたいへん強力です。それでは、メタプログラミングについて考えを深めていきましょう。 メタプログラミングの悩み まずは毎回好例、各界の代表者にメタプログラミングについて

    第5回 メタプログラミング―Excelを使ったDSLを作ろう―その1 メタプログラミングとは?:良いコ-ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社
  • 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その3 Step2:メタ情報をExcelに移動する | gihyo.jp

    リスト2 Step2:メタ情報をExcelに移動したコード public static void main(String[] args) throws Exception { byte[] bytes = FileUtils.readFileToByteArray( new File("data.txt")); DataTable config = new XlsReader(                ┓ new File("config.xls")).read().getTable(0);  ┛① MessageParser parser = new MessageParser(bytes, config); parser.parse(); } private static class MessageParser { ... private DataTable config; pu

    第5回 メタプログラミング―Excelを使ったDSLを作ろう―その3 Step2:メタ情報をExcelに移動する | gihyo.jp
  • 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その2 Step1:ベタなコードで書いてみる | gihyo.jp

    Step1:ベタなコードで書いてみる まずはDSLなどを使わずにべたにコードを書くとリスト1のようになります。 まず①で固定長電文のファイルを読み込み、バイト配列に変換しています。バイト配列はそのままでは「配列の一部を取り出す操作」などが面倒です。ですので、②③で「ByteArray」という自作ユーティリティクラスを使用して、バイト配列を扱いやすくラップしています。 parseメソッドはデータの読み込み処理です。データがなくなるまで読み込み処理を繰り返します。④でそれぞれのデータ項目のサイズだけ順番にデータを読み込んでいます。同時にDate型への変換(toDate)や両端文字列の除去(trim⁠)⁠、Integer型への変換(toInteger)を行っています。⑤で1件分のデータを標準出力へ出力しています。実際に実行してみると図2の出力が得られます。 リスト1 Step1:ベタなコード p

    第5回 メタプログラミング―Excelを使ったDSLを作ろう―その2 Step1:ベタなコードで書いてみる | gihyo.jp
  • 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その4 Step3:リフレクションAPIで変換ルールを動的に適用する | gihyo.jp

    良いコ-ドへの道―普通のプログラマのためのステップアップガイド 第5回メタプログラミング―Excelを使ったDSLを作ろう―その4 Step3⁠⁠:リフレクションAPIで変換ルールを動的に適用する Step3:リフレクションAPIで変換ルールを動的に適用する Step3ではいよいよ読み取ったデータの変換処理を組み込みます。変換ルールはデータ項目に応じて異なるので、リフレクションAPI(コラム参照)を使用して動的に変換処理を適用する必要がでてきます。 下ごしらえとして、変換ルール用のConverterというインタフェースを用意し、変換ルールごとにConverterを実装するクラスを用意します(リスト3~6⁠)⁠。ここでは、IntegerConverter、DateConverter、TrimConverterの3つのクラスを作成しました。これらはStep1のstaticメソッドtoInteg

    第5回 メタプログラミング―Excelを使ったDSLを作ろう―その4 Step3:リフレクションAPIで変換ルールを動的に適用する | gihyo.jp
  • POIのhssfを使って、巨大なエクセルファイルを読み込むには。 - 設計と実装の狭間で。

    企業の皆様におかれましては、エクセルが大好きかと、存じます。 いや、僕も大好きなのだけどもさ、表計算かわいいよ、表計算。 ウルトラハイパフォーマンスで、データストアとしても超一流。 コードの自動生成してもいいし、まかり間違ったりすると、方眼紙としても使えちゃったり…とか。 と、まぁ、色々使い道が多いので、ついJavaでもエクセルを読書きしたくなったりとかするヨネ。 で、そこでApache POIでつよ、となる訳だけど、POIのHSSFは普通に使うと、 ちょっと大きいエクセルファイルを読もうとしただけで、アフォ程メモリをってしまうのですな。 例えば、こんなコードで読み込むのが、まぁ普通ダヨネ。 @Override protected void readExcel(File excel) { BufferedInputStream bi = null; try { bi = new Bu

    POIのhssfを使って、巨大なエクセルファイルを読み込むには。 - 設計と実装の狭間で。
  • 1