Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
1

Apache POI - save MS Word (*.doc)

05.08.2014, 12:04. Показов 4348. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Накидал навскидку функцию, которая (вроде-как) читает из файла-шаблона *.doc данные, заменяет "маску" ({chopName}) на нужное значение, создает новый файл и сохраняет в нем "скелет" из файла-шаблона с уже измененным значением.

Все работает, за тем лишь исключением, что созданный файл при первом запуске бесконечно долго висит с надписью "Проверка на вирусы ...".
При принудительном закрытии и открытием во второй раз уже нормально открывает, но выкидывает сообщение, что "при предыдущем открытии произошла ошибка" и т.д.

Получается poi первоначально как-то коряво создает doc ? Подскажите плз в чем может быть дело.
Заранее благодарю!

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    private void docTest() throws IOException {
        FileInputStream inputStream=new FileInputStream(new File("doc\\guardPack\\noticeRemove.doc").getAbsolutePath());
        HWPFDocument doc = new HWPFDocument(inputStream);
        FileChooser fileChooser = new FileChooser();
 
        fileChooser.setTitle("Сохранить как ...");
        FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Документ Word (*.doc)", "*.doc");
        fileChooser.getExtensionFilters().add(extFilter);
        fileChooser.setInitialFileName("111.doc");
        File userDirectory = new File("C:/");
        fileChooser.setInitialDirectory(userDirectory);
 
        File file = fileChooser.showSaveDialog(StageController.getStage("clientGuardPackStage"));
 
        Range range = doc.getRange();
        range.replaceText("{chopName}", "ВАСЬКА");
 
            if (file != null) {
                FileOutputStream outputStream = new FileOutputStream(new File(file.getAbsolutePath()));
                doc.write(outputStream);
                outputStream.close();
            }
        inputStream.close();
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2014, 12:04
Ответы с готовыми решениями:

Apache POI - Word. Вставка изображения
Доброго времени, уважаемые пользователи! Нужно вставить картинку в Word - документ. Применяю...

Вывод таблиц ms-word в нужном порядке с использованием Apache Poi
Добрый день! Разрабатываю приложение, которое копирует таблицы из нескольких docx документов в...

JavaFX Apache POI WORD
Как мне задать верхний (надстрочный) и нижний (подстрочный текст) Superscrip (1) и (2) для вставки...

Java+apache poi вставка разрывов в таблицу Word
формирую из приложения отчет по шаблону ворд в отчете таблица XWPFTable в которую вставляются...

4
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
07.08.2014, 11:01 2
DOC - это проприетарный формат с ним всегда будут какие-то проблемы. Я бы рекомендовал взять какой-нибудь репортный движок, например jasper, или вообще отказаться от doc-формата в пользу rtf(если надо редактируемый выходной документ) или pdf.
0
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
07.08.2014, 11:56  [ТС] 3
Спасибо за ответ.
Проблему в данном конкретном случае решил заменой шаблонов на *.docx, а на выходе оставил *.doc - вроде работает
0
185 / 160 / 49
Регистрация: 30.07.2013
Сообщений: 508
08.08.2014, 14:49 4
А ты пробовал вместо HWPFDocument использовать XWPFDocument?
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
08.08.2014, 23:29 5
darknim, Так вроде и сделали же. HWPFDocument - для работы с *.doc, XWPFDocument - для *.docx
0
08.08.2014, 23:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2014, 23:29
Помогаю со студенческими работами здесь

java(POI) + DB = .doc
Я извиняюсь если я не в ту тему написал... но все же) Я только что нашел аппатч POI который...

Apache POI
как её корректно установить на eclipse?

Apache POI
Apache POI : Проблема с обновлением Excel, после того как в ячейки записываются новые значения : ...

Apache POI
Всем привет! Возникла необходимость на работе составлять отчеты по шаблону в MS Word. Начальство...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru