2

Pure Java を使用してアプリケーションからテーブルをエクスポートし、レポートを生成する必要があります。COM やプリインストールされたアプリケーションを必要とするものの使用は許可されていません。どうしても.docフォーマットが必要です。docx形式はオプションです。

テーブルをエクスポートするとは、Word 文書にデータを含む単純なテーブルを作成することを意味します。レポートを生成するには、プレースホルダーをテンプレート テーブルの値に置き換えます。また、テンプレート テーブルに新しいサブテーブルを挿入したり、セルと行を結合したりすることも含まれます。

したがって、タスクは次のとおりです。

  • MS Word ドキュメントで表を作成する
  • 表のセルにサブテーブルを挿入する
  • 表のセルと行を結合する
  • フォーマットを残して文書内のテキストを置換する

    私はネットを検索しようとしましたが、仕事をするためのApache POIAsposeライブラリを見つけることができました。Aspose は問題ないようですが、残念ながら私はこれを買う余裕がありません。POI のドキュメンテーションは非常に貧弱で、適切かどうかはわかりません。

    さらに、単純な表をドキュメントに挿入しようとしました。しかし、それは文書を破損させるだけです。以下のコードをチェックしてください。

        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("poi.doc"));
        HWPFDocument doc = new HWPFDocument(fs);        
        Range range = doc.getRange();
    
        Table table = range.insertTableBefore((short)5, 5);
        table.getRow(0).getCell(0).replaceText("cell", true);       
        doc.write(new FileOutputStream("poi_out.doc"));
    

    だから私はその瞬間までに3つの質問があります:

  • この例では何か間違っていますか?
  • POI は、私が言及したタスクに適用できますか?
  • あなたが提案できる他の無料ライブラリ

    返信ありがとうございます

    PSこのトピックに関するこのサイトの投稿をいくつか読みました。それらのどれも本当に私を助けませんでした。しかもどれも古い。その時以来、いくつかの新機能はおそらく変更されています。

  • 4

    3 に答える 3

    3

    これを行うには 2 つの方法があります。

    1. これは、テンプレートのプレースホルダーを実際の値に置き換えるという問題を簡単に解決するため、本当にお勧めします。

    必要なものを含む HTML ファイルを作成します。テンプレート エンジンとして速度を使用します。ここで、プレースホルダーをコード内の値に置き換えた後、「.doc」または「.docx」の拡張子を付けてファイルを保存します。結果のファイルは、Word でうまく開きます。Web レイアウトで開き、ユーザーは必要に応じて印刷レイアウトに切り替えることができます。

    http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html

    1. docx4j を見てください。

    http://www.docx4java.org/trac/docx4j

    しかし、これで、MS Office Word ドキュメントの XML 構造がどのように機能するかを理解できます。また、テーブルを別のテーブル内に配置するのは非常に複雑な場合があります。

    于 2012-08-10T12:29:01.983 に答える
    0

    doc/docx を実行できる無料のJODReportsを参照してください。おそらく POI よりも高速ですが、OpenOffice/LibreOffice をどこかにインストールする必要があります。 Docmosisはこれを行うことができる別のツールであり、クラウド サービスを呼び出すことができれば、何もインストールせずに使用できます (かなり安価ですが、無料ではありません)。POIコード例であなたの問題が何であるかはわかりませんが、POIはdocドキュメントを作成でき(docxについてはわかりません)、無料です.

    于 2012-08-16T08:02:48.497 に答える
    0

    以下もご覧ください。

    • Templater (商用ライセンスが適用されます)
    • XDocReport (完全なオープン ソース)
    于 2015-01-30T03:00:08.983 に答える