للمشاريع مؤخرًا ، تحتاج إلى تصدير بعض المعلومات إلى Word. لقد وجدت العديد من الحلول عبر الإنترنت ، والآن سأشارك ملخص هذه الأيام.
في الوقت الحاضر ، هناك ما يقرب من 6 حلول لتصدير كلمة من Java:
1. يعقوب هو اختصار جافا كوم جسر ، الذي يبني جسرًا بين مكونات Java و Microsoft COM. استخدم مكتبة DLL Dynamic Link التي تأتي مع Jacob ، ويتم تحقيق مكالمة إلى برامج COM على منصة Java من خلال JNI. يتطلب توليد مكتبة DLL Dynamic Link الدعم من منصة Windows. لا يمكن تنفيذ هذا الحل إلا على منصة Windows ، وهو قيوده.
2. يتضمن Apache POI سلسلة من واجهات برمجة التطبيقات التي يمكنها تشغيل ملفات التنسيق المختلفة بناءً على تنسيق مستند Microsoft Ole 2. من خلال واجهات برمجة التطبيقات هذه ، يمكنك قراءة وكتابة Excel و Word والملفات الأخرى في Java. معالجة Excel قوية للغاية ، وكلمتها تقتصر على القراءة. حاليًا ، يمكنه تطبيق بعض عمليات الملفات البسيطة فقط ولا يمكن تعيين الأنماط.
3. Java2word هو مكون (مكتبة الفصل) يدعو مستندات MS Office Word في برنامج Java. يوفر هذا المكون مجموعة بسيطة من واجهات لبرنامج Java لاستدعاء خدماته لتشغيل مستندات الكلمات. تتضمن هذه الخدمات ما يلي: فتح مستند ، وإنشاء مستند جديد ، وإيجاد نص ، واستبدال النص ، وإدخال النص ، وإدخال الصور ، وإدراج الجداول ، وإدراج النص في الإشارات المرجعية ، وإدخال الصور ، وإدراج الجداول ، وما إلى ذلك. ملء البيانات إلى جدول لقراءة بيانات الجدول. الإصدار 1.1 الميزات المحسّنة: حدد أنماط النص ، حدد أنماط الجدول. وبهذه الطريقة ، يمكن كتابة مستندات الكلمات ديناميكيًا. إنه حل جيد.
4. itext هو مشروع شهير للمصدر المصدر المصدر ، مكتبة فئة Java تستخدم لإنشاء مستندات PDF. من خلال Itext ، لا يمكنك فقط إنشاء مستندات PDF أو RTF ، ولكن أيضًا تحويل ملفات XML و HTML إلى ملفات PDF. قوي.
5. نمط الإخراج JSP. هذا الحل بسيط للتنفيذ ، لكن نمط المناولة معيب بعض الشيء ، ويمكن استخدام تصدير بسيط.
6. من السهل جدًا القيام بذلك في XML. تدعم Word تنسيق XML منذ عام 2003. الفكرة العامة هي استخدام Office2003 أو 2007 أولاً لتحرير نمط الكلمة ، ثم حفظها كـ XML ، وترجمة XML إلى قالب ذي جاذبية ، وأخيراً استخدم Java لتحليل قالب القالب ومستند الإخراج. يتم اختبار مستندات الكلمة التي تم إنشاؤها بهذه الطريقة بالكامل مع معايير المكتب ، والتحكم في النمط والمحتوى مريح للغاية ، ولن يتم تشوه الطباعة. المستندات التي تم إنشاؤها هي بالضبط نفس تلك التي تم تحريرها في المكتب.
بناءً على مراجع المعلومات أعلاه وبعض الآراء عبر الإنترنت ، اخترت أخيرًا حل التصدير السادس باستخدام XML.
فيما يلي الأمثلة الأساسية لتنفيذ تصدير كلمات بسيط:
لتصدير محتوى قالب الكلمة ، يكون جزء Pinyin هو الجزء الذي سيتم استبداله في نوع الكود. :
ثم احفظ Word as .xml file ، افتح الملف ، والعثور على العنوان وقم بتعديله إلى $ {title} ، واستبدال المحتوى المراد استبداله بدوره. ثم قم بتغيير لاحقة ملف .xml إلى .ftl واستيراد ملف قالب .ftl إلى الدليل المحدد. تحميل حزمة جرة freemarker.jar. ابدأ في كتابة رمز:
الرمز الرئيسي:
الفئة العامة WordTest {تكوين التكوين الخاص = 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 () ، "") ؛ // المسار الذي يوجد فيه ملف القالب هو القالب t = null ؛ حاول {t = configuration.getTemplate ("test.ftl") ؛ // get template file} catch (ioException e) {E.PrintStackTrace () ؛ } ملف outfile = ملف جديد ("d:/outfile"+math.random ()*10000+". doc") ؛ // تصدير ملف كاتب Out = null ؛ حاول {out = new BufferedWriter (New OutputStreamWriter (FileOutputStream (Outfile))) ؛ } catch (fileNotFoundException e1) {e1.printStackTrace () ؛ } جرب {t.process (datamap ، out) ؛ // املأ بيانات التعبئة في ملف القالب وإخراجها إلى ملف الهدف} catch (templateException e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }} private void getData (Map <String ، Object> datamap) {datamap.put ("title" ، "title") ؛ Datamap.put ("Nian" ، "2016") ؛ datamap.put ("Yue" ، "3") ؛ datamap.put ("ri" ، "6") ؛ datamap.put ("Shenheren" ، "LC") ؛ قائمة <map <string ، object >> list = new ArrayList <map <string ، object >> () ؛ لـ (int i = 0 ؛ i <10 ؛ i ++) {map <string ، object> map = new hashmap <string ، Object> () ؛ map.put ("Xuehao" ، i) ؛ map.put ("neirong" ، "content"+i) ؛ list.add (map) ؛ } datamap.put ("list" ، list) ؛ }}تعديل ملف .ftl ، ابحث عن موقع القائمة ، وأضف القائمة إلى الملف. أضف <#list as l> إلى رأسه (أضف a <list اسم المجموعة الخاص بك كـ xxxx>) وأضف </#list> إلى النهاية. تعديل محتوى القائمة وأضف L. إلى الاسم المراد الإخراج. على سبيل المثال ، Xuehao ، قم بتعديله إلى L.xuehao. هذا يشبه إلى حد ما استخدام تعبيرات EL.
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.