From 4a675204cb0a46bea0ca4c51c5a95a1a9a9c4fda Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Tue, 20 Aug 2013 15:03:18 +0000 Subject: [PATCH] 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 --- .../org/apache/poi/xssf/usermodel/XSSFSheet.java | 13 +++++++------ .../apache/poi/xssf/usermodel/TestXSSFWorkbook.java | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) 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 c2f379fa8..f494c6712 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 5bb875691..8f583efbc 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);