From: Dominik Stadler Date: Tue, 20 Aug 2013 15:03:18 +0000 (+0000) Subject: Revert changes from rev. 1513916 as it severly broke writing valid xlsx files X-Git-Tag: REL_3_10_BETA2~19 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=70dc3d38cae7b3a4a9d0dcc5f934c1e996975439;p=poi.git Revert changes from rev. 1513916 as it severly broke writing valid xlsx files git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1515842 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java index c2f379fa89..f494c67122 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -2689,14 +2689,15 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { } protected void write(OutputStream out) throws IOException { - if(worksheet.sizeOfColsArray() == 1) { - CTCols col = worksheet.getColsArray(0); - if(col.sizeOfColArray() != 0) { + CTCols col = worksheet.getColsArray(0); + if(col.sizeOfColArray() == 0) { + // this is necessary so that we do not write an empty item into the sheet-xml in the xlsx-file + // Excel complains about a corrupted file if this shows up there! + worksheet.setColsArray(null); + } else { setColWidthAttribute(col); - } /*else { - remove, see Bug 52233: worksheet.setColsArray(null); - }*/ + } } // Now re-generate our CTHyperlinks, if needed diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java index 5bb8756914..8f583efbc5 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java @@ -462,7 +462,8 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook { sh.getCTWorksheet().getSheetPr().getTabColor().getIndexed()); } - public void testColumnWidthPOI52233() throws Exception { + // TODO: disabled as the fix for this had severe side-effects + public void doNotRuntestColumnWidthPOI52233() throws Exception { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(); XSSFRow row = sheet.createRow(0);