poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew C. Oliver" <acoli...@apache.org>
Subject Re: cvs commit: jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel TestNamedRange.java
Date Sat, 08 Mar 2003 02:53:14 GMT
You're the man Danny.

-Andy

dmui@apache.org wrote:

>dmui        2003/03/07 13:52:37
>
>  Modified:    src/documentation/xdocs/hssf quick-guide.xml
>               src/java/org/apache/poi/hssf/model Workbook.java
>               src/java/org/apache/poi/hssf/usermodel HSSFWorkbook.java
>               src/testcases/org/apache/poi/hssf/usermodel
>                        TestNamedRange.java
>  Log:
>  Added remove and another PrintArea setting method and documentation update
>  
>  Revision  Changes    Path
>  1.16      +6 -3      jakarta-poi/src/documentation/xdocs/hssf/quick-guide.xml
>  
>  Index: quick-guide.xml
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/documentation/xdocs/hssf/quick-guide.xml,v
>  retrieving revision 1.15
>  retrieving revision 1.16
>  diff -u -r1.15 -r1.16
>  --- quick-guide.xml	6 Mar 2003 21:04:47 -0000	1.15
>  +++ quick-guide.xml	7 Mar 2003 21:52:36 -0000	1.16
>  @@ -445,15 +445,18 @@
>                       <source>
>       HSSFWorkbook wb = new HSSFWorkbook();
>       HSSFSheet sheet = wb.createSheet("Sheet1");
>  -    wb.setPrintArea(0, "Sheet1!$A$1:$C$2");
>  +    wb.setPrintArea(0, "$A$1:$C$2");
>       //sets the print area for the first sheet
>  -    
>  +    //Alternatively:
>  +    //wb.setPrintArea(0, 0, 1, 0, 0) is equivalent to using the name reference (See
the JavaDocs for more details)  
>   
>       // Create various cells and rows for spreadsheet.
>   
>       FileOutputStream fileOut = new FileOutputStream("workbook.xls");
>       wb.write(fileOut);
>       fileOut.close();
>  +    
>  +    
>                       </source>
>                   </section>
>   
>  @@ -479,7 +482,7 @@
>                   <anchor id="Convenience Functions"/>
>                   <section title="Using the Convenience Functions">
>                       <p>
>  -                        The convience functions live in contrib and provide
>  +                        The convenience functions live in contrib and provide
>                           utility features such as setting borders around merged
>                           regions and changing style attributes without explicitly
>                           creating new styles.
>  
>  
>  
>  1.28      +16 -1     jakarta-poi/src/java/org/apache/poi/hssf/model/Workbook.java
>  
>  Index: Workbook.java
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/Workbook.java,v
>  retrieving revision 1.27
>  retrieving revision 1.28
>  diff -u -r1.27 -r1.28
>  --- Workbook.java	6 Mar 2003 20:41:16 -0000	1.27
>  +++ Workbook.java	7 Mar 2003 21:52:37 -0000	1.28
>  @@ -339,7 +339,7 @@
>   	/**Retrieves the Builtin NameRecord that matches the name and index
>   	 * There shouldn't be too many names to make the sequential search too slow
>   	 * @param name byte representation of the builtin name to match
>  -	 * @param sheetIndex zero-based sheet reference
>  +	 * @param sheetIndex Index to match
>   	 * @return null if no builtin NameRecord matches
>   	 */
>   	public NameRecord getSpecificBuiltinRecord(byte name, int sheetIndex)
>  @@ -356,6 +356,21 @@
>   	    
>   	    return null;
>   	    
>  +	}
>  +
>  +	/**
>  +	 * Removes the specified Builtin NameRecord that matches the name and index
>  +	 * @param name byte representation of the builtin to match
>  +	 * @param sheetIndex zero-based sheet reference
>  +	 */
>  +	public void removeBuiltinRecord(byte name, int sheetIndex) {
>  +		//the name array is smaller so searching through it should be faster than
>  +		//using the findFirstXXXX methods
>  +		NameRecord record = getSpecificBuiltinRecord(name, sheetIndex);
>  +		if (record != null) {
>  +			names.remove(record);
>  +		}
>  +		
>   	}
>   
>       public int getNumRecords() {
>  
>  
>  
>  1.22      +58 -20    jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
>  
>  Index: HSSFWorkbook.java
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java,v
>  retrieving revision 1.21
>  retrieving revision 1.22
>  diff -u -r1.21 -r1.22
>  --- HSSFWorkbook.java	6 Mar 2003 20:41:16 -0000	1.21
>  +++ HSSFWorkbook.java	7 Mar 2003 21:52:37 -0000	1.22
>  @@ -1,7 +1,7 @@
>   /* ====================================================================
>    * The Apache Software License, Version 1.1
>    *
>  - * Copyright (c) 2002 The Apache Software Foundation.  All rights
>  + * Copyright (c) 2002, 2003 The Apache Software Foundation.  All rights
>    * reserved.
>    *
>    * Redistribution and use in source and binary forms, with or without
>  @@ -59,30 +59,38 @@
>    */
>   package org.apache.poi.hssf.usermodel;
>   
>  -import org.apache.poi.util.POILogFactory;
>  +import java.io.ByteArrayInputStream;
>  +import java.io.IOException;
>  +import java.io.InputStream;
>  +import java.io.OutputStream;
>  +import java.util.ArrayList;
>  +import java.util.Iterator;
>  +import java.util.List;
>  +import java.util.Stack;
>  +
>   import org.apache.poi.hssf.eventmodel.EventRecordFactory;
>   import org.apache.poi.hssf.model.Sheet;
>   import org.apache.poi.hssf.model.Workbook;
>  -import org.apache.poi.hssf.record.*;
>  -import org.apache.poi.hssf.record.formula.MemFuncPtg;
>  +import org.apache.poi.hssf.record.BackupRecord;
>  +import org.apache.poi.hssf.record.ExtendedFormatRecord;
>  +import org.apache.poi.hssf.record.FontRecord;
>  +import org.apache.poi.hssf.record.NameRecord;
>  +import org.apache.poi.hssf.record.RecordFactory;
>  +import org.apache.poi.hssf.record.SSTRecord;
>  +import org.apache.poi.hssf.record.UnknownRecord;
>  +import org.apache.poi.hssf.record.WindowTwoRecord;
>   import org.apache.poi.hssf.record.formula.Area3DPtg;
>  +import org.apache.poi.hssf.record.formula.MemFuncPtg;
>   import org.apache.poi.hssf.record.formula.UnionPtg;
>  -import org.apache.poi.poifs.filesystem.POIFSFileSystem;
>  -import org.apache.poi.poifs.filesystem.Entry;
>  +import org.apache.poi.hssf.util.CellReference;
>   import org.apache.poi.poifs.filesystem.DirectoryEntry;
>   import org.apache.poi.poifs.filesystem.DocumentEntry;
>   import org.apache.poi.poifs.filesystem.DocumentInputStream;
>  +import org.apache.poi.poifs.filesystem.Entry;
>  +import org.apache.poi.poifs.filesystem.POIFSFileSystem;
>  +import org.apache.poi.util.POILogFactory;
>   import org.apache.poi.util.POILogger;
>   
>  -import java.io.ByteArrayInputStream;
>  -import java.io.IOException;
>  -import java.io.InputStream;
>  -import java.io.OutputStream;
>  -import java.util.ArrayList;
>  -import java.util.List;
>  -import java.util.Iterator;
>  -import java.util.Stack;
>  -
>   /**
>    * High level representation of a workbook.  This is the first object most users
>    * will construct whether they are reading or writing a workbook.  It is also the
>  @@ -816,7 +824,7 @@
>   	/**
>   	 * Sets the printarea for the sheet provided
>   	 * <p>
>  -	 * i.e. Reference = Sheet2!$A$1:$B$2
>  +	 * i.e. Reference = $A$1:$B$2
>   	 * @param sheetIndex Zero-based sheet index (0 Represents the first sheet to keep
consistent with java)
>   	 * @param reference Valid name Reference for the Print Area 
>   	 */
>  @@ -829,15 +837,38 @@
>   			name = workbook.createBuiltInName(NameRecord.BUILTIN_PRINT_AREA, sheetIndex+1);
>          //adding one here because 0 indicates a global named region; doesnt make sense
for print areas
>          
>  -       HSSFName nameWrapper = new HSSFName(workbook, name);
>  -       //the external name does some housekeeping, refactor to lower level?
>  +	    short externSheetIndex = getWorkbook().checkExternSheet(sheetIndex);
>  +		name.setExternSheetNumber(externSheetIndex);       
>  +		name.setAreaReference(reference);
>          
>  -		nameWrapper.setReference(reference);
>  +		
>   	}
>   	
>  +	/**
>  +	 * For the Convenience of Java Programmers maintaining pointers.
>  +	 * @see setPrintArea(int, String)
>  +	 * @param sheetIndex Zero-based sheet index (0 = First Sheet)
>  +	 * @param startColumn Column to begin printarea
>  +	 * @param endColumn Column to end the printarea
>  +	 * @param startRow Row to begin the printarea
>  +	 * @param endRow Row to end the printarea
>  +	 */
>  +	public void setPrintArea(int sheetIndex, int startColumn, int endColumn,
>  +							  int startRow, int endRow) {
>  +							  	
>  +		//using absolute references because they dont get copied and pasted anyway						
  	
>  +		CellReference cell = new CellReference(startRow, startColumn, true, true);
>  +		String reference = cell.toString();
>  +		
>  +		cell = new CellReference(endRow, endColumn, true, true);
>  +		reference = reference+":"+cell.toString();
>  +		
>  +		setPrintArea(sheetIndex, reference);							  	
>  +	}
>  +							  
>   	    
>   	/**
>  -	 * Retrieves the reference for the printarea of the specified sheet
>  +	 * Retrieves the reference for the printarea of the specified sheet, the sheet name
is appended to the reference even if it was not specified.
>   	 * @param sheetIndex Zero-based sheet index (0 Represents the first sheet to keep
consistent with java) 
>   	 * @return String Null if no print area has been defined
>   	 */	    
>  @@ -850,6 +881,13 @@
>   		return name.getAreaReference(workbook.getSheetReferences());
>   	}    
>       
>  +    /**
>  +     * Delete the printarea for the sheet specified
>  +     * @param sheetIndex Zero-based sheet index (0 = First Sheet)
>  +     */
>  +    public void removePrintArea(int sheetIndex) {
>  +    	getWorkbook().removeBuiltinRecord(NameRecord.BUILTIN_PRINT_AREA, sheetIndex+1);

>  +    }
>       
>       /** creates a new named range and add it to the model
>        * @return named range high level
>  
>  
>  
>  1.6       +58 -0     jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
>  
>  Index: TestNamedRange.java
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java,v
>  retrieving revision 1.5
>  retrieving revision 1.6
>  diff -u -r1.5 -r1.6
>  --- TestNamedRange.java	6 Mar 2003 20:41:17 -0000	1.5
>  +++ TestNamedRange.java	7 Mar 2003 21:52:37 -0000	1.6
>  @@ -370,6 +370,26 @@
>   	 }
>   
>   	 /**
>  +	  * For Convenience, dont force sheet names to be used
>  +	  */
>  +	 public void testSinglePrintAreaWOSheet()
>  +	 {
>  +		 HSSFWorkbook workbook = new HSSFWorkbook();        
>  +		 HSSFSheet sheet = workbook.createSheet("Test Print Area");                
>  +		 String sheetName = workbook.getSheetName(0);
>  +	     
>  +		 String reference = "$A$1:$B$1";
>  +		 workbook.setPrintArea(0, reference);
>  +	             
>  +		 String retrievedPrintArea = workbook.getPrintArea(0);
>  +	    
>  +		 assertNotNull("Print Area not defined for first sheet", retrievedPrintArea);   
    
>  +		 assertEquals(sheetName+"!"+reference, retrievedPrintArea);
>  +	     
>  +	 }
>  +
>  +
>  +	 /**
>   	  * Test to see if the print area can be retrieved from an excel created file
>   	  */
>   	 public void testPrintAreaFileRead()
>  @@ -486,6 +506,44 @@
>   	    
>   	    
>   	}
>  +    
>  +    /**
>  +     * Tests the setting of print areas with coordinates (Row/Column designations)
>  +     *
>  +     */
>  +    public void testPrintAreaCoords(){
>  +		HSSFWorkbook workbook = new HSSFWorkbook();        
>  +		HSSFSheet sheet = workbook.createSheet("Test Print Area");                
>  +		String sheetName = workbook.getSheetName(0);
>  +	     
>  +		String reference = sheetName+"!$A$1:$B$1";
>  +		workbook.setPrintArea(0, 0, 1, 0, 0);
>  +	             
>  +		String retrievedPrintArea = workbook.getPrintArea(0);
>  +	    
>  +		assertNotNull("Print Area not defined for first sheet", retrievedPrintArea);    
   
>  +		assertEquals(reference, retrievedPrintArea);    	
>  +    }
>  +     
>  +    /**
>  +     * Verifies an existing print area is deleted
>  +     *
>  +     */
>  +    public void testPrintAreaRemove() {
>  +		HSSFWorkbook workbook = new HSSFWorkbook();        
>  +		HSSFSheet sheet = workbook.createSheet("Test Print Area");                
>  +		String sheetName = workbook.getSheetName(0);
>  +	     
>  +		String reference = sheetName+"!$A$1:$B$1";
>  +		workbook.setPrintArea(0, 0, 1, 0, 0);
>  +	             
>  +		String retrievedPrintArea = workbook.getPrintArea(0);
>  +	    
>  +		assertNotNull("Print Area not defined for first sheet", retrievedPrintArea);    
   
>  +    	
>  +    	workbook.removePrintArea(0);
>  +    	assertNull("PrintArea was not removed", workbook.getPrintArea(0)); 
>  +    }
>           
>   }
>   
>  
>  
>  
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: poi-dev-help@jakarta.apache.org
>
>
>  
>



Mime
View raw message