JAvaはwordを生成する簡単な方法をエクスポートします
4105 ワード
最近やったプロジェクトでは、wordにいくつかの情報をエクスポートする必要があります.ネット上で多くの解決策を探して、今この数日の総括を分かち合います.
現在、javaエクスポートwordには6つのソリューションがあります.1、JacobはJava-COM Bridgeの略で、JavaとマイクロソフトのCOMコンポーネントの間に橋を架けています.Jacobが持参したDLLダイナミックリンクライブラリを用いて,Javaプラットフォーム上でCOMプログラムの呼び出しをJNI方式で実現した.DLLダイナミックリンクライブラリの生成にはwindowsプラットフォームのサポートが必要です.このスキームはwindowsプラットフォームでしか実現できず、その限界である.
2、Apache POIは、MicroSoft OLE 2 Component Document Formatに基づく様々なフォーマットファイルを操作し、JavaでExcel、Wordなどのファイルを読み書きできる一連のAPIを含む.彼のexcel処理は非常に強く、wordに対しては読み取りに限られており、現在は簡単なファイルの操作しか実現できず、スタイルを設定することはできません.
3、Java 2 wordはjavaプログラムでMS Office Wordドキュメントを呼び出すコンポーネント(クラスライブラリ)です.このコンポーネントは、javaプログラムが彼のサービス操作Wordドキュメントを呼び出すための簡単なインタフェースのセットを提供します.これらのサービスには、ドキュメントを開く、ドキュメントを新規作成する、テキストを検索する、テキストを置換する、テキストを挿入する、ピクチャを挿入する、テーブルを挿入する、ブックマークにテキストを挿入する、ピクチャを挿入する、テーブルを挿入するなどがあります.表にデータを入力して表データを読み込み、1.1版の強化機能:テキストスタイルを指定し、表スタイルを指定します.これにより、wordドキュメントを動的にレイアウトできます.良い解決策です.
4、iTextは有名なオープンソースのサイトsourceforgeのプロジェクトで、PDFドキュメントを生成するためのjavaクラスライブラリです.iTextによってPDFまたはrtfのドキュメントを生成するだけでなく、XML、HtmlファイルをPDFファイルに変換することもできます.強力な機能.
5、JSP出力スタイル、この方案は簡単を実現するが、処理スタイルは少し欠陥があり、簡単なエクスポートは使用できる.
6、XMLで作るのは簡単です.Wordは2003年からXML形式をサポートしており、office 2003または2007でwordのスタイルを編集してからxmlとして保存し、xmlをFreeMarkerテンプレートに翻訳し、javaでFreeMarkerテンプレートを解析してDocを出力するのが大まかな考え方です.このようにして生成されたwordドキュメントはofficeの基準に完全に合致し、スタイル、コンテンツ制御が非常に便利で、印刷も変形せず、生成されたドキュメントはofficeで編集されたドキュメントと全く同じである.
以上の資料の参考と、ネット上のいくつかの意見を総合して、最後に私は選択して、6種類目はxmlで導出案をします.
以下は基本的な例で、簡単なwordエクスポートを実現します.エクスポートするwordテンプレートの内容は、ピンイン部分をコード種に置き換える部分として起動します. :
次にwordを.xmlファイルとして保存し、ファイルを開き、titleを見つけて${title}に変更し、後で置換する内容を順番に置き換えます.次に.xmlファイル接尾辞を.ftlに変更し、.ftlテンプレートファイルを指定したディレクトリにインポートします.jarパッケージfreemarker.jarをロードします.コードの書き込みを開始:
主なコード:
.ftlファイルを変更し、リストの場所を見つけて、追加するリストをファイルに追加します.リストの前に(頭に1つ追加)、最後に#list>を追加します.リストの内容を変更し、出力する名前の前にl.を付けます.xuehaoのように、l.xuehaoに変更します.これはEL式のようなものです.
以上が本文のすべての内容で、みんなの学習に役立つことを望みます.
現在、javaエクスポートwordには6つのソリューションがあります.1、JacobはJava-COM Bridgeの略で、JavaとマイクロソフトのCOMコンポーネントの間に橋を架けています.Jacobが持参したDLLダイナミックリンクライブラリを用いて,Javaプラットフォーム上でCOMプログラムの呼び出しをJNI方式で実現した.DLLダイナミックリンクライブラリの生成にはwindowsプラットフォームのサポートが必要です.このスキームはwindowsプラットフォームでしか実現できず、その限界である.
2、Apache POIは、MicroSoft OLE 2 Component Document Formatに基づく様々なフォーマットファイルを操作し、JavaでExcel、Wordなどのファイルを読み書きできる一連のAPIを含む.彼のexcel処理は非常に強く、wordに対しては読み取りに限られており、現在は簡単なファイルの操作しか実現できず、スタイルを設定することはできません.
3、Java 2 wordはjavaプログラムでMS Office Wordドキュメントを呼び出すコンポーネント(クラスライブラリ)です.このコンポーネントは、javaプログラムが彼のサービス操作Wordドキュメントを呼び出すための簡単なインタフェースのセットを提供します.これらのサービスには、ドキュメントを開く、ドキュメントを新規作成する、テキストを検索する、テキストを置換する、テキストを挿入する、ピクチャを挿入する、テーブルを挿入する、ブックマークにテキストを挿入する、ピクチャを挿入する、テーブルを挿入するなどがあります.表にデータを入力して表データを読み込み、1.1版の強化機能:テキストスタイルを指定し、表スタイルを指定します.これにより、wordドキュメントを動的にレイアウトできます.良い解決策です.
4、iTextは有名なオープンソースのサイトsourceforgeのプロジェクトで、PDFドキュメントを生成するためのjavaクラスライブラリです.iTextによってPDFまたはrtfのドキュメントを生成するだけでなく、XML、HtmlファイルをPDFファイルに変換することもできます.強力な機能.
5、JSP出力スタイル、この方案は簡単を実現するが、処理スタイルは少し欠陥があり、簡単なエクスポートは使用できる.
6、XMLで作るのは簡単です.Wordは2003年からXML形式をサポートしており、office 2003または2007でwordのスタイルを編集してからxmlとして保存し、xmlをFreeMarkerテンプレートに翻訳し、javaでFreeMarkerテンプレートを解析してDocを出力するのが大まかな考え方です.このようにして生成されたwordドキュメントはofficeの基準に完全に合致し、スタイル、コンテンツ制御が非常に便利で、印刷も変形せず、生成されたドキュメントはofficeで編集されたドキュメントと全く同じである.
以上の資料の参考と、ネット上のいくつかの意見を総合して、最後に私は選択して、6種類目はxmlで導出案をします.
以下は基本的な例で、簡単なwordエクスポートを実現します.エクスポートするwordテンプレートの内容は、ピンイン部分をコード種に置き換える部分として起動します. :
次にwordを.xmlファイルとして保存し、ファイルを開き、titleを見つけて${title}に変更し、後で置換する内容を順番に置き換えます.次に.xmlファイル接尾辞を.ftlに変更し、.ftlテンプレートファイルを指定したディレクトリにインポートします.jarパッケージfreemarker.jarをロードします.コードの書き込みを開始:
主なコード:
public class WordTest {
private Configuration configuration = null;
public WordTest(){
configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
}
public static void main(String[] args) {
WordTest test = new WordTest();
test.createWord();
}
public void createWord(){
Map dataMap=new HashMap();
getData(dataMap);
configuration.setClassForTemplateLoading(this.getClass(), "");//
Template t=null;
try {
t = configuration.getTemplate(" .ftl"); //
} catch (IOException e) {
e.printStackTrace();
}
File outFile = new File("D:/outFile"+Math.random()*10000+".doc"); //
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
t.process(dataMap, out); //
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void getData(Map dataMap) {
dataMap.put("title", " ");
dataMap.put("nian", "2016");
dataMap.put("yue", "3");
dataMap.put("ri", "6");
dataMap.put("shenheren", "lc");
List
.ftlファイルを変更し、リストの場所を見つけて、追加するリストをファイルに追加します.リストの前に(頭に1つ追加)、最後に#list>を追加します.リストの内容を変更し、出力する名前の前にl.を付けます.xuehaoのように、l.xuehaoに変更します.これはEL式のようなものです.
以上が本文のすべての内容で、みんなの学習に役立つことを望みます.