Для проектов в последнее время вам нужно экспортировать некоторую информацию в Word. Я нашел много решений в Интернете, и теперь я поделюсь резюме в эти дни.
В настоящее время существует примерно 6 решений для экспорта слова из Java:
1. Иаков-это аббревиатура моста Java-Com, который строит мост между Java и COM Microsoft. Используйте библиотеку DLL Dynamic Link, которая поставляется с Jacob, и призыв к программам COM на платформе Java реализован через JNI. Генерация библиотеки динамических ссылок DLL требует поддержки с платформы Windows. Это решение может быть реализовано только на платформе Windows, которая является его ограничением.
2. Apache Poi включает в себя серию API, которые могут управлять различными файлами формата на основе формата составного документа Microsoft OLE 2. Через эти API вы можете читать и писать Excel, Word и другие файлы в Java. Его обработка Excel очень мощная, и его слово ограничено чтением. В настоящее время он может реализовать только некоторые простые файловые операции и не может установить стили.
3. Java2word - это компонент (библиотека классов), который называет документы MS Office Word в программе Java. Этот компонент предоставляет простой набор интерфейсов для программы Java, чтобы вызвать свои услуги для работы документов Word. Эти услуги включают в себя: открытие документа, создание нового документа, поиск текста, замену текста, вставку текста, вставку изображений, вставка таблиц, вставка текста в закладки, вставки изображений, вставки таблиц и т. Д. Заполните данные в таблицу для чтения данных таблицы. Версия 1.1 Усовершенствованные функции: укажите стили текста, укажите стили таблицы. Таким образом, документы Word могут быть динамически напечатаны. Это хорошее решение.
4. ITEXT - это знаменитый проект Sourceforge с открытым исходным кодом, библиотека классов Java, используемая для создания PDF -документов. Через ITEXT вы можете не только генерировать PDF или RTF -документы, но и конвертировать файлы XML и HTML в файлы PDF. Мощный.
5. JSP стиль вывода. Это решение просто реализовать, но стиль обработки немного ошибочно, и можно использовать простой экспорт.
6. Это очень просто сделать в XML. Word поддерживает формат XML с 2003 года. Общая идея состоит в том, чтобы сначала использовать Office2003 или 2007, чтобы редактировать стиль слова, затем сохранить как XML, перевести XML в шаблон FreeMarker и, наконец, использовать Java, чтобы разобрать шаблон Freemarker и выводный документ. Слово документы, сгенерированные таким образом, тестируются полностью соответствуют офисным стандартам, а контроль стиля и контента очень удобен, а печать не будет деформирована. Сгенерированные документы точно такие же, как и отредактированы в офисе.
Основываясь на ссылках приведенной выше информации и некоторых онлайн -мнений, я наконец выбрал 6 -е решение об экспорте с использованием XML.
Вот основные примеры для реализации простого экспорта слов:
Чтобы экспортировать содержание слова шаблона слова, часть пиньина - это часть, которая должна быть заменена в типе кода. :
Затем сохраните Word как файл .xml, откройте файл, найдите заголовок и измените его на $ {title} и замените контент, который будет заменен по очереди. Затем измените суффикс файла .xml на .ftl и импортируйте файл шаблона .ftl в указанный каталог. Загрузите Jar Package 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.setClassFortemplayLateLoading (this.getClass (), ""); // Путь, в котором файл шаблона находится шаблон T = null; try {t = configuration.getTemplate ("test.ftl"); // Получить файл шаблона} catch (ioException e) {e.printstacktrace (); } Файл outfile = new File ("d:/outfile"+math.random ()*10000+". Doc"); // export file writer out = null; try {out = new BufferedWriter (новый 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 <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 >> (); for (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 List в качестве L> в заголовок (добавьте имя вашей коллекции как XXXX>) и добавьте </#List> к концу. Измените содержимое списка и добавьте l. к имени для вывода. Например, Xuehao, измените его на L.Xuehao. Это немного похоже на использование EL Expressions.
Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.