]> source.dussan.org Git - poi.git/commitdiff
Fix bug #49689 - Allow the setting of user style names on newly created HSSF cell...
authorNick Burch <nick@apache.org>
Tue, 3 Aug 2010 15:29:56 +0000 (15:29 +0000)
committerNick Burch <nick@apache.org>
Tue, 3 Aug 2010 15:29:56 +0000 (15:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@981930 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/usermodel/HSSFCellStyle.java
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

index 085fc30e20440a7be8d669f7b379ceafb0951505..3c6ba2742c4f9d6cb5b88fd3389ef4dc84bc3868 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.7-beta2" date="2010-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">49689 - Allow the setting of user style names on newly created HSSF cell styles</action>
            <action dev="POI-DEVELOPERS" type="add">Make it easier to tell which content types each POIXMLTextExtractor handles</action>
            <action dev="POI-DEVELOPERS" type="fix">49649 - Added clone support for UserSView* and Feat* families of records</action>
            <action dev="POI-DEVELOPERS" type="fix">49653 - Support for escaped unicode characters in Shared String Table</action>
index fbf2a868c1ed378ef7770bc3afa68388467c52dd..d65cb4ebceeb1c31db29d8ff46e4f738576b3847 100644 (file)
@@ -778,7 +778,9 @@ public final class HSSFCellStyle implements CellStyle {
        if(sr == null) {
                sr = _workbook.createStyleRecord(_index);
        }
-       if(sr.isBuiltin()) {
+       // All Style records start as "builtin", but generally
+       //  only 20 and below really need to be
+       if(sr.isBuiltin() && _index <= 20) {
                throw new IllegalArgumentException("Unable to set user specified style names for built in styles!");
        }
        sr.setName(styleName);
index 4afa0a7cbe3341c4bdc2373762cd07bed31a1735..7d8c27a6f4c894513288722755e1f9b481dc6bf5 100644 (file)
@@ -1803,4 +1803,38 @@ if(1==2) {
        assertEquals(0xff, rotated.getCellStyle().getRotation());
        assertEquals(0xff, nc.getCellStyle().getRotation());
     }
+    
+    /**
+     * Setting the user style name on custom styles
+     */
+    public void test49689() throws Exception {
+       HSSFWorkbook wb = new HSSFWorkbook();
+       HSSFSheet s = wb.createSheet("Test");
+       HSSFRow r = s.createRow(0);
+       HSSFCell c = r.createCell(0);
+       
+       HSSFCellStyle cs1 = wb.createCellStyle();
+       HSSFCellStyle cs2 = wb.createCellStyle();
+       HSSFCellStyle cs3 = wb.createCellStyle();
+       
+       assertEquals(21, cs1.getIndex());
+       cs1.setUserStyleName("Testing");
+       
+       assertEquals(22, cs2.getIndex());
+       cs2.setUserStyleName("Testing 2");
+       
+       assertEquals(23, cs3.getIndex());
+       cs3.setUserStyleName("Testing 3");
+       
+       // Set one
+       c.setCellStyle(cs1);
+       
+       // Write out and read back
+       wb = writeOutAndReadBack(wb);
+       
+       // Re-check
+       assertEquals("Testing", wb.getCellStyleAt((short)21).getUserStyleName());
+       assertEquals("Testing 2", wb.getCellStyleAt((short)22).getUserStyleName());
+       assertEquals("Testing 3", wb.getCellStyleAt((short)23).getUserStyleName());
+    }
 }