[latest] [かきこみー] [トップページへ戻る]

おともだち:[さちほさん] [やもんさん] [うこんさん]

ふにふに日記


05/30 (2007)
POIでWORDつづき
[13:51]

昨日書いたやり方ではうまくいかない場合があるのを発見。

  • 文字に修飾(色やフォントサイズ変更)がかかっていた場合、その部分の文字を書き換えても修飾部分が変化しないことにより、色やフォントの指定がずれる
  • 小さな文字列から大きな文字列に置換すると、置換した"行"以降が消滅する

    小さなテストパターンでしかテストしていないので何とも言えません。後者についてはわたしのコードが悪い可能性が高いですが、前者についてはPOIではどうしようもないかもしれません。
    Wordが文字列表現部分と修飾部分(StyleSheetと表現されている)を別々に持っているため、修飾がある場合に文字列を編集したとき、都合の良いように修飾部分も編集しないといろいろとずれてしまうようですね。
    これがPOIのWord実装が止まっている原因かなあ。

    まあ、とにかくいろいろ試してみよう。

  • つづき
    [14:43]

    POI。 書き換えた文字列より後ろが消える。やっぱりドキュメント全体で総文字数もってるのかな? StringBuffer書き換えればいいだけなら本当に楽だったのに……
    ソース見てもTextPiece.getRawBytes()では、StringBuffer.toString()してるだけだし。うーむ。もう少し解析がひつよう?


    05/29 (2007)
    Jakarta POIについて書いてみる
    [09:45]

    久しぶりに技術検証ということでJAVAプログラミングをすることになったので、Jakarta POIについて書いてみます。
    POIはJAVAからExcelやWordの読み書きが出来るようにするJakartaのライブラリです。Excel操作では有名。Word操作は現状どこまでできるか? というところが不明なのでその調査ということで。

    ちなみにJavaでコードを組むのは3年ぶりくらいです…… Eclipece使うのも(汗) まあ、だんだんと慣らしていきましょう。

    で、POIでのMS WORD文書のよみかき。

    // wordファイル読み込み
    HWPFDocument doc = null;
    try {
    doc = new HWPFDocument( new FileInputStream("test.doc"));

    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    こんな感じでHWPFDocumentにファイルを読み込んでから、

    // テキスト読み出し TextPieceTable tb = doc.getTextTable();
    List lst = tb.getTextPieces();
    ListIterator itel = lst.listIterator() ;
    for( ; itel.hasNext();){
    StringBuffer sb = null;

    Object obj = itel.next() ;
    TextPiece piece = (TextPiece)obj;
    sb = piece.getStringBuffer();
    }

    こんな感じで内部テキストが取れるっぽい。TextTableというから、一行ごとにListで取れるのかと思ったら、全文書が一個目のTextPieceに入ってました。一行ごとにとりたかったらパラグラフとか使うのかも。

    ファイル内容の書き換えや追加は、素直にStringBufferに対して操作してやればいいです。
    ファイルの書き出しは

    // wordファイル書き出し try {
    FileOutputStream os = new FileOutputStream("testout.doc");
    doc.write(os);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    素直にこれで。

    これで一応読み込み、書き換え、書き出しは出来るっぽいです。
    ただ対象はまったく装飾の無いwordファイルなので、いろいろと装飾がついている場合については不明。

    WebにPOIでのWord書き換えについてあまり記事が無かったので書いてみました。まあ、やってみたら一応できたっぽいよ、って事で。


    05/25 (2007)
    会社でできること できないこと
    [09:55]

    昨日会社で「検索」という言葉を口に出したら、担当部長から「常務に怒られるからやめておいたほうがいいよ?」と言われました。

    わたしが今関わってる仕事は、いわゆるエンタープライズコンテンツマネージメントってやつです。さまざまな手段で電子化された文書(もちろん、動画や画像も文書に含みます)をライブラリに溜め込んで、どのように利用していくかってお話です。
    よくある使い方は、文書をワークフローで回して適切なアクセス制限、監査証跡を文書に残し、最後はアーカイビングしていくという一般的な文書管理のシステムになるでしょう。ちょっと発展させると、特定のタグがついた文書からは自動的にHTMLを生成して、承認が降りた時点でプレスリリースとしてWebで公開する、とかとか。

    なんにせよ、電子データ、それもメタデータによりさまざまにタグ付けされた情報がライブラリにアーカイブされているわけです。
    なんでここでそれらを「検索」するという言葉がタブー視されるのか良くわかりませんでした。で。部長に聞いてみたら…… 高度に社内的な政治情勢の問題のようです orz
    ディレクトリ的にではなく、フラットにライブラリに突っ込んでるんだから、何らかの検索アプライアンスと組み合わせないとおいしいところが使えないと思うんだけどなあ。

    何で昨日こんなことを考えていたのかというと、 http://opentechpress.jp/enterprise/07/05/22/0521236.shtml こんなニュースを読んでいたから、なわけですが。

    いっぱつでばれたw
    [11:42]

    にはは。
    部長とお話してて、mpeg7て単語を出したら一発で昔どこで仕事してたのかがばれたw
    まあ、派遣で行ってた形に近いし、もうだいぶ前のことだから問題ないのだろうけどねえ。
    わたしはどっちかといえばあっちの会社のグループのが好きです。今がどーなってるかは知りませんが、うちのグループは福利厚生がひどすぎる(><*)


    05/24 (2007)
    存在意義
    [09:43]

    こちらの日記の存在意義がmixiと比べて希薄なので、仕事の中核にかかわるよーな情報は書かないように注意しつつ、興味を持ってること、これをこうしたら面白そうなのに、というネタを書くテストをしてみたいと思います。

    従来どおり、というか、見てる人と検索に引っかかる内容の関係で、オタクネタはmixiでやることになるかとw

    http://blogs.itmedia.co.jp/akihito/2007/05/spock_373f.html
    今回注目した記事。
    面白いなあと思ったのは、検索結果の粒度でしょうか。
    通常googleなどの検索エンジンでは、単純にマッチした情報が羅列され、そこから先は自分の思っている情報かどうかを探し出して見抜く能力が要求されるわけです。

    上の記事みたいな粒度の検索エンジンは、検索エンジン自体に既に目的があるわけです。今存在するので有名なのは、やっぱり google images かな?
    人物検索については、個人情報保護の問題が難しいですが、人物検索のみに関わらず、特定のカテゴリーに対して情報をまとめて表示するような検索エンジン・データベースが出てくると面白いでしょうね。
    企業では、会社と関係がある人物(取引先の人とか)の情報を会社単位で保持して(今までは人とのコネクションがメインだしねえ)、共有・検索するよーな仕組みが考えられるでしょうし。人物を商品に置き換えることも容易だし。

    まあわたしがニュースを見て考えて書いているようなことは、既に誰かが動いていて、しかも動いているものがあるっていうようなものなんでしょうけれど。
    自分の中でもう少しいろいろな情報を集めて、サービスなり技術なりで面白いものを考えてみたいところです。

    ……ここ数年、自分の考えていることや興味分野を思うと、もしかしたら今まで回り道していたのも、間違いではないのかもしれないです。


    05/15 (2007)
    携帯からの書き込みてすと
    [12:21]

    手間そのものはみくしと全然変わらないんだけどなあ。なんでこっちに書かなくなったんだろ。

    最近のわたしは、明示的にふられたこともあり、かなりよくぼーに忠実です。まあ、2.5次元で我慢したいところですが。しかしそーもいかなく。

    犯罪にははしらないよっ(><*)


    1998年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    1999年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2000年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2001年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2002年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2003年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2004年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2005年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2006年 [ 01 02 03 04 05 06 07 08 09 10 11 12 ]
    2007年 [ 01 02 03 04 05 06 -- -- -- -- -- -- ]