У меня есть XSSFSheet
с изображениями в конце моих используемых строк.При добавлении новой строки я хотел бы сдвинуть все изображения на одну строку вниз.Я нашел этот похожий вопрос о перемещении диаграмм и попытался использовать ту часть ответа, которая выполняет фактическое перемещение диаграмм, потому что, похоже, это будет работать и для изображений.
java.util.List<CTTwoCellAnchor> drawingAnchors = ((XSSFDrawing)sheet.getDrawingPatriarch()).getCTDrawing().getTwoCellAnchorList();
for (CTTwoCellAnchor drawingAnchor : drawingAnchors) {
int fromRow = drawingAnchor.getFrom().getRow();
int toRow = drawingAnchor.getTo().getRow();
if (fromRow >= startRow) {
drawingAnchor.getFrom().setRow(fromRow + n);
drawingAnchor.getTo().setRow(toRow + n);
}
}
, но это не сработало, но вместо этого выдает NoClassDefFoundError
.
(Правка: теперь я обнаружил, что эту ошибку можно устранить, предоставив полный jar всех схем ooxml-schemas
, как упоминалосьв FAQ-N10025 . спасибо @Axel Richter)
После опробования нескольких различных подходов я нашел способ сделать это.Так как это заняло у меня так много времени, а информации об этом пока нет, я решил опубликовать свои выводы здесь на SO.
Пожалуйста, найдите мое решение в моем собственном ответе.Приветствия