Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и ms word / 4 сообщений из 4, страница 1 из 1
14.06.2016, 11:29
    #39255548
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и ms word
Добрый день.
Есть несколько вордовских файлов (шаблоны) в которых хочется проставить в нужных местах метки (довольно большое количество). Затем средствами java менять их на значения. Принципиальный момент, надо использовать уже имеющиеся файлы, то есть генерировать файл нельзя.
Пробовал использовать библиотеки POI и doc4j (как-то работает с POI), но того что хотел не получилось. В лучшем случае меняется 1-2 значения.
Метка вида x1:y2:z1 введенная руками в первую ячейку таблицы нормально заменяется, а следующие не воспринимает т.к. они уже становятся не одним целым.
Схема такая: проставил в шаблоне метки (это таблица вордовская), ищу нужную метку и меняю на значение. Сейчас все уперлось в метки. Их разбивает на части.

Что можете посоветовать?
Для примера выкладываю кусок кода. (Одну метку меняет, но когда их много беда...)

Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
 String nameFileDoc = nameDocxShablon;
        FileInputStream fis = new FileInputStream(new File(nameFileDoc));
        XWPFDocument doc = new XWPFDocument(fis);
        String replacment = "r1:r1:g1";
        String value = "352";


        for (XWPFTable tbl : doc.getTables()) {
            for (XWPFTableRow row : tbl.getRows()) {
                for (XWPFTableCell cell : row.getTableCells()) {
                    for (XWPFParagraph p : cell.getParagraphs()) {
                       
                        for (XWPFRun r : p.getRuns()) {
                            if (r.getText(0) != null && r.getText(0).equals(replacment)) {
                        
                                   String text = r.getText(0).replace(replacment, value);
                                 
                                r.setText(text, 0);
                            }
                        }
                    }
                }
            }
        }



        File file = new File(nameItog);
        FileOutputStream fos = new FileOutputStream(file);
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        doc.write(bos);
        bos.flush();
        
        bos.close();
        fos.close();
        fis.close();
...
Рейтинг: 0 / 0
14.06.2016, 12:02
    #39255576
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и ms word
...
Рейтинг: 0 / 0
14.06.2016, 12:22
    #39255601
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и ms word
doc4j пробовал, за остальные спс.
...
Рейтинг: 0 / 0
14.06.2016, 13:00
    #39255651
by-pass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java и ms word
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java и ms word / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]