Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
1

Apache POI добавление altChunk элемента

17.05.2016, 15:37. Просмотров 5243. Ответов 4
Метки нет (Все метки)

Помогите, пожалуйста, разобраться со следующей проблемой. Для объединения нескольких docx документов можно один из них внедрить в другой с помощью конструкции CT_AltChunk. Это совсем просто делается с помощью docx4j, но в проекте мне доступен только Apache POI и использовать могу только его средства. Предполагаю, что добавлять нужно с помощью addRelationship(partName, TargetMode.INTERNAL, PackageRelationshipTypes.CUSTOM_XML);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2016, 15:37
Ответы с готовыми решениями:

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

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

JAVA + EXCEL (APACHE.POI)
Привет! Ребята подскажите решение к задаче. К примеру, есть несколько сотен файлов excel, в...

Docx4j и Apache POI (XWPF)
Подскажите, пожалуйста, какая из библиотек чаще используется для работы с docx документами?

4
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
17.05.2016, 18:09  [ТС] 2
А есть ли поддержка таких элементов в POI? Класс CTAltChank почему-то не находится.
0
Миниатюры
Apache POI добавление altChunk элемента  
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
18.05.2016, 13:49  [ТС] 3
Такого класса действительно в Apache POI нет, но копания в исходниках таки дали некоторый результат! Разобрался, как добавить altChunk элемент в структуру документа и управлять его свойствами. Мне кажется, что таким образом можно осуществлять любые низкоуровневые модификации OOXML документа.

Java
1
2
3
4
5
6
7
8
9
10
11
QName ALTCHUNK$58 = new QName("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "altChunk");
QName ID$2 = new QName("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "id");
 
// создаем элемент
CTDocument1 ctDoc = doc.getDocument();
CTBodyImpl b = (CTBodyImpl) ctDoc.getBody();
XmlComplexContentImpl ac = (XmlComplexContentImpl) b.get_store().add_element_user(ALTCHUNK$58);
 
// создаем ID и устанавливаем его значение
org.apache.xmlbeans.SimpleValue target = ac.get_store().add_attribute_user(ID$2);
target.setStringValue(id); // в переменной id должен быть идентификатор отношения (relationship), которое указывает на вкладываемый документ
Осталось разобраться, как корректно добавить вложение в документ.
0
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
20.05.2016, 16:43  [ТС] 4
Получилось соединить несколько документов. Могу выложить функцию, если кому интересно.
Правда, есть проблема с тем, что стили из разных документов друг с другом конфликтуют. Это приводит к тому, что некоторые элементы в документе отображаются не корректно.
0
0 / 0 / 1
Регистрация: 20.11.2017
Сообщений: 7
09.11.2020, 03:24 5
Здравствуйте, можете выложить вашу функцию, пожалуйста.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2020, 03:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Apache POI, диапазон ячеек
Как покрасить диапазон ячеек?

Apache POI и таблицы Excel
Добрый вечер. Вот получил дипломное задание от руководителя, и я не понимаю как жить) Нужно...

Как подключить Apache POI
я новичок в java, работаю в intellij, нужно написать считку с excel файла, но не могу подключить...

Написание файла с Apache Poi
при использовании Apache poi для сохранения текста в файл .docx, мне выдаёт пустой документ без...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.