From: Dominik Stadler Date: Fri, 30 Dec 2016 16:55:19 +0000 (+0000) Subject: Bug 60512: Add missing XSSFRelation.CUSTOM_PROPERTY X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=12e2fa39fa06e1680e62aa525a426296ce76a355;p=poi.git Bug 60512: Add missing XSSFRelation.CUSTOM_PROPERTY git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1776606 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java index 0f8b7b32b6..204f1cd4b0 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java @@ -351,7 +351,14 @@ public final class XSSFRelation extends POIXMLRelation { "/xl/ctrlProps/ctrlProp#.xml", null ); - + + public static final XSSFRelation CUSTOM_PROPERTIES = new XSSFRelation( + "application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customProperty", + "/xl/customProperty#.bin", + null + ); + public static final String NS_SPREADSHEETML = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; public static final String NS_DRAWINGML = "http://schemas.openxmlformats.org/drawingml/2006/main"; public static final String NS_CHART = "http://schemas.openxmlformats.org/drawingml/2006/chart"; @@ -387,7 +394,7 @@ public final class XSSFRelation extends POIXMLRelation { * http://schemas.openxmlformats.org/officeDocument/2006/relationships/image * @return registered POIXMLRelation or null if not found */ - public static XSSFRelation getInstance(String rel){ + public static XSSFRelation getInstance(String rel) { return _table.get(rel); } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/TestXSSFCloneSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/TestXSSFCloneSheet.java index 91883a3dfa..36f7ef0198 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/TestXSSFCloneSheet.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/TestXSSFCloneSheet.java @@ -18,15 +18,22 @@ package org.apache.poi.xssf; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.ss.usermodel.BaseTestCloneSheet; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.Before; import org.junit.Test; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + public class TestXSSFCloneSheet extends BaseTestCloneSheet { public TestXSSFCloneSheet() { super(HSSFITestDataProvider.instance); @@ -59,4 +66,28 @@ public class TestXSSFCloneSheet extends BaseTestCloneSheet { } assertEquals(1, wb.getNumberOfSheets()); } + + @Test + public void test60512() throws IOException { + XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("60512.xlsm"); + + assertEquals(1, wb.getNumberOfSheets()); + Sheet sheet = wb.cloneSheet(0); + assertNotNull(sheet); + assertEquals(2, wb.getNumberOfSheets()); + + + Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb); + assertNotNull(wbBack); + wbBack.close(); + + OutputStream str = new FileOutputStream("/tmp/60512.xlsx"); + try { + wb.write(str); + } finally { + str.close(); + } + + wb.close(); + } } diff --git a/test-data/spreadsheet/60512.xlsm b/test-data/spreadsheet/60512.xlsm new file mode 100644 index 0000000000..7c38c6d279 Binary files /dev/null and b/test-data/spreadsheet/60512.xlsm differ