From eecb44281e5106d690d7dada9183910369419980 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Mon, 2 Aug 2021 17:22:13 +0000 Subject: [PATCH] [bug-65464] fix issue where shared formulas can be corrupted. Thanks to Nico Seegert git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1891962 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java index a631b5f22b..27ad23611e 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -4625,7 +4625,11 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { if(nextCell != null && nextCell != cell && nextCell.getCellType() == CellType.FORMULA) { CTCellFormula nextF = nextCell.getCTCell().getF(); nextF.setStringValue(nextCell.getCellFormula(evalWb)); - nextF.setT(STCellFormulaType.SHARED); //https://bz.apache.org/bugzilla/show_bug.cgi?id=65464 + //https://bz.apache.org/bugzilla/show_bug.cgi?id=65464 + nextF.setT(STCellFormulaType.SHARED); + if (!nextF.isSetSi()) { + nextF.setSi(f.getSi()); + } CellRangeAddress nextRef = new CellRangeAddress( nextCell.getRowIndex(), ref.getLastRow(), nextCell.getColumnIndex(), ref.getLastColumn());