You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/06/16 15:46:06 UTC

svn commit: r668157 - in /poi/branches/ooxml: ./ src/java/org/apache/poi/hssf/model/ src/java/org/apache/poi/hssf/record/formula/ src/testcases/org/apache/poi/hssf/data/ src/testcases/org/apache/poi/hssf/usermodel/

Author: nick
Date: Mon Jun 16 06:46:05 2008
New Revision: 668157

URL: http://svn.apache.org/viewvc?rev=668157&view=rev
Log:
Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-639241,639243-639253,639255-639486,639488-639601,639603-639835,639837-639917,639919-640056,640058-640710,640712-641156,641158-641184,641186-641795,641797-641798,641800-641933,641935-641963,641965-641966,641968-641995,641997-642230,642232-642562,642564-642565,642568-642570,642572-642573,642576-642736,642739-642877,642879,642881-642890,642892-642903,642905-642945,642947-643624,643626-643653,643655-643669,643671,643673-643830,643832-643833,643835-644342,644344-644472,644474-644508,644510-645347,645349-645351,645353-645559,645561-645565,645568-645951,645953-646193,646195-646311,646313-646404,646406-646665,646667-646853,646855-646869,646871-647151,647153-647185,647187-647277,647279-647566,647568-647573,647575,647578-647711,647714-647737,647739-647823,647825-648155,648157-648202,648204-648273,648275,648277-648302,648304-648333,648335-648588,648590-648622,648625-648673,648675-649141,649144,649146-649556,
 649558-649795,649799,649801-649910,649912-649913,649915-650128,650131-650132,650134-650137,650140-650914,650916-651991,651993-652284,652286-652287,652289,652291,652293-652297,652299-652328,652330-652425,652427-652445,652447-652560,652562-652933,652935,652937-652993,652995-653116,653118-653124,653126-653483,653487-653519,653522-653550,653552-653607,653609-653667,653669-653674,653676-653814,653817-653830,653832-653891,653893-653944,653946-654055,654057-654355,654357-654365,654367-654648,654651-655215,655217-655277,655279-655281,655283-655911,655913-656212,656214,656216-656251,656253-656698,656700-656756,656758-656892,656894-657135,657137-657165,657168-657179,657181-657354,657356-657357,657359-657701,657703-657874,657876-658032,658034-658284,658286,658288-658301,658303-658307,658309-658321,658323-658335,658337-658348,658351,658353-658832,658834-658983,658985,658987-659066,659068-659402,659404-659428,659430-659451,659453-659454,659456-659461,659463-659477,659479-659524,659526-65
 9571,659574,659576-660255,660257-660262,660264-660279,660281-660343,660345-660473,660475-660827,660829-660833,660835-660888,660890-663321,663323-663435,663437-663764,663766-663854,663856-664219,664221-664489,664494-664514,664516-668013,668015-668142,668144-668156 via svnmerge from 
https://svn.apache.org:443/repos/asf/poi/trunk

........
  r668153 | nick | 2008-06-16 14:20:42 +0100 (Mon, 16 Jun 2008) | 1 line
  
  Slight tweak for named ranges pointing at deleted sheets, related to bug #30978
........
  r668155 | nick | 2008-06-16 14:39:44 +0100 (Mon, 16 Jun 2008) | 1 line
  
  Make the test related to bug #30978, which shows that named ranges pointing to deleted sheets is ok, more complete
........

Added:
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/data/30978-deleted.xls
      - copied unchanged from r668155, poi/trunk/src/testcases/org/apache/poi/hssf/data/30978-deleted.xls
Modified:
    poi/branches/ooxml/   (props changed)
    poi/branches/ooxml/src/java/org/apache/poi/hssf/model/Workbook.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java

Propchange: poi/branches/ooxml/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jun 16 06:46:05 2008
@@ -1 +1 @@
-/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-668143
+/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-668156

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/model/Workbook.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/model/Workbook.java?rev=668157&r1=668156&r2=668157&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/model/Workbook.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/model/Workbook.java Mon Jun 16 06:46:05 2008
@@ -603,6 +603,9 @@
             boundsheets.remove(sheetnum);
             fixTabIdRecord();
         }
+        
+        // If we decide that we need to fix up
+        //  NameRecords, do it here
     }
 
     /**

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java?rev=668157&r1=668156&r2=668157&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java Mon Jun 16 06:46:05 2008
@@ -269,7 +269,14 @@
 		StringBuffer retval = new StringBuffer();
 		String sheetName = Ref3DPtg.getSheetName(book, field_1_index_extern_sheet);
 		if(sheetName != null) {
-			SheetNameFormatter.appendFormat(retval, sheetName);
+			if(sheetName.length() == 0) {
+				// What excel does if sheet has been deleted
+				sheetName = "#REF";
+				retval.append(sheetName);
+			} else {
+				// Normal
+				SheetNameFormatter.appendFormat(retval, sheetName);
+			}
 			retval.append( '!' );
 		}
 		

Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=668157&r1=668156&r2=668157&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java Mon Jun 16 06:46:05 2008
@@ -30,6 +30,7 @@
 import org.apache.poi.hssf.record.NameRecord;
 import org.apache.poi.hssf.record.Record;
 import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.record.formula.Area3DPtg;
 import org.apache.poi.util.TempFile;
 /**
  *
@@ -402,6 +403,92 @@
             assertTrue(e.getMessage().startsWith("Actual serialized sheet size"));
         }
     }
+    
+    /**
+     * Checks that us and HSSFName play nicely with named ranges
+     *  that point to deleted sheets
+     */
+    public void testNamesToDeleteSheets() throws Exception {
+    	HSSFWorkbook b = openSample("30978-deleted.xls");
+    	assertEquals(3, b.getNumberOfNames());
+    	
+    	// Sheet 2 is deleted
+    	assertEquals("Sheet1", b.getSheetName(0));
+    	assertEquals("Sheet3", b.getSheetName(1));
+    	
+    	Area3DPtg ptg;
+    	NameRecord nr;
+    	HSSFName n;
+    	
+    	/* ======= Name pointing to deleted sheet ====== */
+    	
+    	// First at low level
+    	nr = b.getWorkbook().getNameRecord(0);
+    	assertEquals("On2", nr.getNameText());
+    	assertEquals(0, nr.getIndexToSheet());
+    	assertEquals(1, nr.getExternSheetNumber());
+    	assertEquals(1, nr.getNameDefinition().size());
+    	
+    	ptg = (Area3DPtg)nr.getNameDefinition().get(0);
+    	assertEquals(1, ptg.getExternSheetIndex());
+    	assertEquals(0, ptg.getFirstColumn());
+    	assertEquals(0, ptg.getFirstRow());
+    	assertEquals(0, ptg.getLastColumn());
+    	assertEquals(2, ptg.getLastRow());
+    	
+    	// Now at high level
+    	n = b.getNameAt(0);
+    	assertEquals("On2", n.getNameName());
+    	assertEquals("", n.getSheetName());
+    	assertEquals("#REF!$A$1:$A$3", n.getReference());
+    	
+    	
+    	/* ======= Name pointing to 1st sheet ====== */
+    	
+    	// First at low level
+    	nr = b.getWorkbook().getNameRecord(1);
+    	assertEquals("OnOne", nr.getNameText());
+    	assertEquals(0, nr.getIndexToSheet());
+    	assertEquals(0, nr.getExternSheetNumber());
+    	assertEquals(1, nr.getNameDefinition().size());
+    	
+    	ptg = (Area3DPtg)nr.getNameDefinition().get(0);
+    	assertEquals(0, ptg.getExternSheetIndex());
+    	assertEquals(0, ptg.getFirstColumn());
+    	assertEquals(2, ptg.getFirstRow());
+    	assertEquals(0, ptg.getLastColumn());
+    	assertEquals(3, ptg.getLastRow());
+    	
+    	// Now at high level
+    	n = b.getNameAt(1);
+    	assertEquals("OnOne", n.getNameName());
+    	assertEquals("Sheet1", n.getSheetName());
+    	assertEquals("Sheet1!$A$3:$A$4", n.getReference());
+    	
+    	
+    	/* ======= Name pointing to 3rd sheet ====== */
+    	
+    	// First at low level
+    	nr = b.getWorkbook().getNameRecord(2);
+    	assertEquals("OnSheet3", nr.getNameText());
+    	assertEquals(0, nr.getIndexToSheet());
+    	assertEquals(2, nr.getExternSheetNumber());
+    	assertEquals(1, nr.getNameDefinition().size());
+    	
+    	ptg = (Area3DPtg)nr.getNameDefinition().get(0);
+    	assertEquals(2, ptg.getExternSheetIndex());
+    	assertEquals(0, ptg.getFirstColumn());
+    	assertEquals(0, ptg.getFirstRow());
+    	assertEquals(0, ptg.getLastColumn());
+    	assertEquals(1, ptg.getLastRow());
+    	
+    	// Now at high level
+    	n = b.getNameAt(2);
+    	assertEquals("OnSheet3", n.getNameName());
+    	assertEquals("Sheet3", n.getSheetName());
+    	assertEquals("Sheet3!$A$1:$A$2", n.getReference());
+    }
+    
     /**
      * result returned by getRecordSize() differs from result returned by serialize()
      */



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org