Untuk proyek baru -baru ini, Anda perlu mengekspor beberapa informasi ke Word. Saya telah menemukan banyak solusi online, dan sekarang saya akan membagikan ringkasan hari -hari ini.
Saat ini, ada sekitar 6 solusi untuk mengekspor kata dari Java:
1. Jacob adalah singkatan dari Java-Com Bridge, yang membangun jembatan antara komponen COM Java dan Microsoft. Gunakan pustaka tautan dinamis DLL yang dilengkapi dengan Jacob, dan panggilan untuk program COM di platform Java direalisasikan melalui JNI. Generasi perpustakaan tautan dinamis DLL membutuhkan dukungan dari platform Windows. Solusi ini hanya dapat diimplementasikan pada platform Windows, yang merupakan keterbatasannya.
2. Apache POI mencakup serangkaian API yang dapat mengoperasikan berbagai file format berdasarkan format dokumen Microsoft OLE 2 Compound. Melalui API ini, Anda dapat membaca dan menulis Excel, Word, dan file lain di Java. Pemrosesan Excel -nya sangat kuat, dan kata -katanya terbatas pada membaca. Saat ini, ia hanya dapat mengimplementasikan beberapa operasi file sederhana dan tidak dapat mengatur gaya.
3. Java2Word adalah komponen (pustaka kelas) yang memanggil dokumen MS Office Word dalam program Java. Komponen ini menyediakan serangkaian antarmuka sederhana untuk program Java untuk memanggil layanannya untuk mengoperasikan dokumen Word. Layanan ini meliputi: Membuka dokumen, membuat dokumen baru, menemukan teks, mengganti teks, memasukkan teks, memasukkan gambar, memasukkan tabel, memasukkan teks ke dalam bookmark, memasukkan gambar, memasukkan tabel, dll. Isi data ke dalam tabel untuk membaca data tabel. Versi 1.1 Fitur yang Ditingkatkan: Tentukan gaya teks, tentukan gaya tabel. Dengan cara ini, dokumen Word dapat diketik secara dinamis. Itu solusi yang bagus.
4. ITEXT adalah proyek sumber terbuka yang terkenal, SourceForge Project, perpustakaan kelas Java yang digunakan untuk menghasilkan dokumen PDF. Melalui ITEXT, Anda tidak hanya dapat menghasilkan dokumen PDF atau RTF, tetapi juga mengubah file XML dan HTML menjadi file PDF. Kuat
5. Gaya Output JSP. Solusi ini mudah diimplementasikan, tetapi gaya penanganannya sedikit cacat, dan ekspor sederhana dapat digunakan.
6. Sangat mudah melakukannya di XML. Word mendukung format XML sejak tahun 2003. Gagasan umum adalah untuk pertama -tama menggunakan Office2003 atau 2007 untuk mengedit gaya kata, kemudian menyimpan sebagai XML, menerjemahkan XML ke dalam template freemarker, dan akhirnya menggunakan Java untuk menguraikan templat freemarker dan output Doc. Kata dokumen yang dihasilkan dengan cara ini diuji sepenuhnya mematuhi standar kantor, dan gaya dan kontrol konten sangat nyaman, dan pencetakan tidak akan cacat. Dokumen yang dihasilkan persis sama dengan yang diedit di kantor.
Berdasarkan referensi informasi di atas dan beberapa pendapat online, saya akhirnya memilih solusi ekspor ke -6 menggunakan XML.
Berikut adalah contoh dasar untuk mengimplementasikan ekspor kata sederhana:
Untuk mengekspor konten template kata, bagian pinyin adalah bagian yang akan diganti dalam jenis kode. :
Kemudian simpan Word sebagai file .xml, buka file, temukan judul dan ubah menjadi $ {title}, dan ganti konten yang akan diganti secara bergantian. Kemudian ubah akhiran file .xml ke .ftl dan impor file template .ftl ke direktori yang ditentukan. Muat paket jar freemarker.jar. Mulailah menulis kode:
Kode utama:
Wordtest kelas publik {konfigurasi pribadi konfigurasi = 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 <String, Object> datamap = new HashMap <String, Object> (); getData (datamap); configuration.setClassFortemplateLoading (this.getClass (), ""); // jalur di mana file template terletak template t = null; coba {t = configuration.gettemplate ("test.ftl"); // Dapatkan file template} catch (ioException e) {e.printstacktrace (); } File outfile = file baru ("d:/outfile"+math.random ()*10000+". Doc"); // Ekspor File Writer out = null; coba {out = baru bufferedwriter (outputStreamWriter baru (fileoutputStream baru (outfile))); } catch (FileNotFoundException E1) {e1.printstacktrace (); } coba {t.process (datamap, out); // Isi data isi ke dalam file template dan output ke file target} catch (templateException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }} private void getData (peta <string, object> datamap) {datamap.put ("title", "title"); datamap.put ("nian", "2016"); datamap.put ("yue", "3"); datamap.put ("ri", "6"); datamap.put ("shenheren", "lc"); Daftar <peta <String, Object >> Daftar = ArrayList baru <peta <String, Object >> (); untuk (int i = 0; i <10; i ++) {peta <string, object> peta = new HashMap <string, object> (); Map.put ("Xuehao", i); peta.put ("neirong", "konten"+i); list.add (peta); } datamap.put ("Daftar", daftar); }}Ubah file .ftl, temukan lokasi daftar, dan tambahkan daftar ke file. Tambahkan Daftar <#List sebagai l> ke header -nya (tambahkan <#list nama koleksi Anda sebagai xxxx>) dan tambahkan </####Daftar> ke akhir. Ubah konten daftar dan tambahkan l. untuk nama menjadi output. Misalnya, Xuehao, memodifikasinya menjadi l.xuehao. Ini agak seperti penggunaan EL Expressions.
Di atas adalah semua tentang artikel ini, saya harap ini akan membantu untuk pembelajaran semua orang.