Как удалить XWDF Chart из файла Word с Apache POI - PullRequest
0 голосов
/ 25 января 2020

Я использую шаблон Word с графиками Excel, которыми я хочу программно управлять с помощью библиотеки Java Apache POI. Для этого мне также нужно иметь возможность условно удалить диаграмму, которая хранится в этом шаблоне. Кто-нибудь знает, как я могу полностью удалить диаграмму XWDF из документа Word через Apache POI?

1 Ответ

0 голосов
/ 06 февраля 2020

Основано на публикации Акселя Рихтерса ( Удаление диаграммы из слайда PowerPoint с помощью Apache POI ). Я думаю, что я почти у цели, но когда я хочу открыть обновленный файл Word, выдается ошибка о нечитаемом контенте. , Это то, что я имею до сих пор:

PackagePart packagePartChart = xWPFChart.getPackagePart();

PackagePart packagePartWordDoc = xWPFDocument.getPackagePart();
OPCPackage packageWordDoc = packagePartWordDoc.getPackage();

// iterate over all relations the chart has and remove them
for (PackageRelationship chartrelship : packagePartChart.getRelationships()) {
    String partname = chartrelship.getTargetURI().toString();
    PackagePart part = packageWordDoc.getPartsByName(Pattern.compile(partname)).get(0);
    packageWordDoc.removePart(part);
    packagePartChart.removeRelationship(chartrelship.getId());
}

// now remove the chart itself from the word doc                           
Method removeRelation = POIXMLDocumentPart.class.getDeclaredMethod("removeRelation", POIXMLDocumentPart.class); 
removeRelation.setAccessible(true); 
removeRelation.invoke(xWPFDocument, xWPFChart);

Кто-нибудь есть идеи о том, что здесь может пойти не так ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...