resize(2.0)
resizes to 200% of the original.
*/
void resize(double scale);
+
+ ClientAnchor getPreferredSize();
+
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java b/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java
index 33da9e4ea..0844f4518 100644
--- a/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java
+++ b/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java
@@ -26,6 +26,7 @@ import java.util.Map.Entry;
import org.apache.poi.ss.usermodel.FontFamily;
import org.apache.poi.ss.usermodel.FontScheme;
import org.apache.poi.ss.usermodel.BuiltinFormats;
+import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder;
@@ -468,9 +469,9 @@ public class StylesTable extends POIXMLDocumentPart {
*/
public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline) {
for (XSSFFont font : fonts) {
- if ( (font.getBold() == (boldWeight == XSSFFont.BOLDWEIGHT_BOLD))
+ if ( (font.getBoldweight() == boldWeight)
&& font.getColor() == color
- && font.getFontHeightInPoints() == fontHeight
+ && font.getFontHeight() == fontHeight
&& font.getFontName().equals(name)
&& font.getItalic() == italic
&& font.getStrikeout() == strikeout
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFont.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFont.java
index c4af9bdaf..739ef4ca5 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFont.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFont.java
@@ -66,7 +66,7 @@ public class XSSFFont implements Font {
protected XSSFFont() {
this.ctFont = CTFont.Factory.newInstance();
setFontName(DEFAULT_FONT_NAME);
- setFontHeight(DEFAULT_FONT_SIZE);
+ setFontHeight((double)DEFAULT_FONT_SIZE);
}
/**
@@ -154,21 +154,16 @@ public class XSSFFont implements Font {
CTFontSize size = ctFont.sizeOfSzArray() == 0 ? null : ctFont.getSzArray(0);
if (size != null) {
double fontHeight = size.getVal();
- return (short) fontHeight;
+ return (short)(fontHeight*20);
} else
- return DEFAULT_FONT_SIZE;
+ return (short)(DEFAULT_FONT_SIZE*20);
}
/**
* @see #getFontHeight()
*/
public short getFontHeightInPoints() {
- CTFontSize size = ctFont.sizeOfSzArray() == 0 ? null : ctFont.getSzArray(0);
- if (size != null) {
- double fontHeight = size.getVal();
- return (short) fontHeight;
- } else
- return DEFAULT_FONT_SIZE;
+ return (short)(getFontHeight()/20);
}
/**
@@ -347,7 +342,7 @@ public class XSSFFont implements Font {
* @param height - height in points
*/
public void setFontHeight(short height) {
- setFontHeight((double) height);
+ setFontHeight((double) height/20);
}
/**
@@ -366,7 +361,7 @@ public class XSSFFont implements Font {
* @link #setFontHeight
*/
public void setFontHeightInPoints(short height) {
- setFontHeight(height);
+ setFontHeight((double)height);
}
/**
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java
index 47fc9ba04..4517f1292 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java
@@ -359,6 +359,7 @@ public final class XSSFName implements Name {
}
private static void validateName(String name){
+ if(name.length() == 0) throw new IllegalArgumentException("Name cannot be blank");
char c = name.charAt(0);
if(!(c == '_' || Character.isLetter(c)) || name.indexOf(' ') != -1) {
throw new IllegalArgumentException("Invalid name: '"+name+"'; Names must begin with a letter or underscore and not contain spaces");
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
index 8af2c29a2..874cd0f38 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
@@ -436,6 +436,11 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable
+ * Addresses Bug #16411
+ */
+ public void testNamedReadModify() {
+ HSSFWorkbook wb = getTestDataProvider().openSampleWorkbook("namedinput.xls");
+
+ HSSFName name = wb.getNameAt(0);
+ String sheetName = wb.getSheetName(0);
+
+ assertEquals(sheetName+"!$A$1:$D$10", name.getRefersToFormula());
+
+ name = wb.getNameAt(1);
+ String newReference = sheetName +"!$A$1:$C$36";
+
+ name.setRefersToFormula(newReference);
+ assertEquals(newReference, name.getRefersToFormula());
+ }
+
+ /**
+ * Test to see if the print area can be retrieved from an excel created file
+ */
+ public void testPrintAreaFileRead() {
+ HSSFWorkbook workbook = getTestDataProvider().openSampleWorkbook("SimpleWithPrintArea.xls");
+
+ String sheetName = workbook.getSheetName(0);
+ String reference = sheetName+"!$A$1:$C$5";
+
+ assertEquals(reference, workbook.getPrintArea(0));
+ }
+
+
+ public void testDeletedReference() throws Exception {
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("24207.xls");
+ assertEquals(2, wb.getNumberOfNames());
+
+ HSSFName name1 = wb.getNameAt(0);
+ assertEquals("a", name1.getNameName());
+ assertEquals("Sheet1!$A$1", name1.getRefersToFormula());
+ new AreaReference(name1.getRefersToFormula());
+ assertTrue("Successfully constructed first reference", true);
+
+ HSSFName name2 = wb.getNameAt(1);
+ assertEquals("b", name2.getNameName());
+ assertEquals("Sheet1!#REF!", name2.getRefersToFormula());
+ assertTrue(name2.isDeleted());
+ try {
+ new AreaReference(name2.getRefersToFormula());
+ fail("attempt to supply an invalid reference to AreaReference constructor results in exception");
+ } catch (StringIndexOutOfBoundsException e) { // TODO - use a different exception for this condition
+ // expected during successful test
+ }
+ }
+
+ /**
+ * When setting A1 type of referencese HSSFName.setRefersToFormula
+ * must set the type of operands to Ptg.CLASS_REF,
+ * otherwise created named don't appear in the dropdown to the left opf formula bar in Excel
+ */
+ public void testTypeOfRootPtg(){
+ HSSFWorkbook wb = new HSSFWorkbook();
+ wb.createSheet("CSCO");
+
+ Ptg[] ptgs = HSSFFormulaParser.parse("CSCO!$E$71", wb, FormulaType.NAMEDRANGE, 0);
+ for (int i = 0; i < ptgs.length; i++) {
+ assertEquals('R', ptgs[i].getRVAType());
+ }
+
+ }
}
\ No newline at end of file
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
index d1a6719e3..81c899076 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
@@ -19,33 +19,23 @@ package org.apache.poi.hssf.usermodel;
import junit.framework.TestCase;
import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.HSSFITestDataProvider;
+import org.apache.poi.ss.usermodel.BaseTestPicture;
/**
* Test HSSFPicture
.
*
* @author Yegor Kozlov (yegor at apache.org)
*/
-public final class TestHSSFPicture extends TestCase{
+public final class TestHSSFPicture extends BaseTestPicture {
+
+ @Override
+ protected HSSFITestDataProvider getTestDataProvider(){
+ return HSSFITestDataProvider.getInstance();
+ }
public void testResize() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sh1 = wb.createSheet();
- HSSFPatriarch p1 = sh1.createDrawingPatriarch();
-
- byte[] pictureData = HSSFTestDataSamples.getTestDataFileContent("logoKarmokar4.png");
- int idx1 = wb.addPicture( pictureData, HSSFWorkbook.PICTURE_TYPE_PNG );
- HSSFPicture picture1 = p1.createPicture(new HSSFClientAnchor(), idx1);
- HSSFClientAnchor anchor1 = picture1.getPreferredSize();
-
- //assert against what would BiffViewer print if we insert the image in xls and dump the file
- assertEquals(0, anchor1.getCol1());
- assertEquals(0, anchor1.getRow1());
- assertEquals(1, anchor1.getCol2());
- assertEquals(9, anchor1.getRow2());
- assertEquals(0, anchor1.getDx1());
- assertEquals(0, anchor1.getDy1());
- assertEquals(848, anchor1.getDx2());
- assertEquals(240, anchor1.getDy2());
+ baseTestResize(new HSSFClientAnchor(0, 0, 848, 240, (short)0, 0, (short)1, 9));
}
/**
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
index 880f3ecf2..484ff70e1 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
@@ -59,23 +59,6 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
assertEquals(3, nameRecord.getSheetNumber());
}
- public void testCaseInsensitiveNames() {
- HSSFWorkbook b = new HSSFWorkbook( );
- HSSFSheet originalSheet = b.createSheet("Sheet1");
- HSSFSheet fetchedSheet = b.getSheet("sheet1");
- if(fetchedSheet == null) {
- throw new AssertionFailedError("Identified bug 44892");
- }
- assertEquals(originalSheet, fetchedSheet);
- try {
- b.createSheet("sHeeT1");
- fail("should have thrown exceptiuon due to duplicate sheet name");
- } catch (IllegalArgumentException e) {
- // expected during successful test
- assertEquals("The workbook already contains a sheet of this name", e.getMessage());
- }
- }
-
public void testWindowOneDefaults() {
HSSFWorkbook b = new HSSFWorkbook( );
try {
@@ -154,7 +137,7 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
// So, start again
b = getTestDataProvider().openSampleWorkbook("44010-SingleChart.xls");
- b = writeRead(b);
+ b = getTestDataProvider().writeOutAndReadBack(b);
assertEquals(2, b.getNumberOfSheets());
s = b.getSheetAt(1);
assertEquals(0, s.getFirstRowNum());
@@ -184,7 +167,7 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
// So, start again
b = getTestDataProvider().openSampleWorkbook("44010-TwoCharts.xls");
- b = writeRead(b);
+ b = getTestDataProvider().writeOutAndReadBack(b);
assertEquals(3, b.getNumberOfSheets());
s = b.getSheetAt(1);
@@ -195,11 +178,6 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
assertEquals(8, s.getLastRowNum());
}
- private static HSSFWorkbook writeRead(HSSFWorkbook b) {
- return HSSFTestDataSamples.writeOutAndReadBack(b);
- }
-
-
public void testSelectedSheet_bug44523() {
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("Sheet1");
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java b/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
deleted file mode 100644
index ecb6d7a62..000000000
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
+++ /dev/null
@@ -1,603 +0,0 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hssf.usermodel;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.apache.poi.hssf.HSSFTestDataSamples;
-import org.apache.poi.hssf.model.HSSFFormulaParser;
-import org.apache.poi.hssf.record.formula.Ptg;
-import org.apache.poi.ss.util.AreaReference;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.ss.formula.FormulaType;
-
-/**
- *
- * @author ROMANL
- * @author Andrew C. Oliver (acoliver at apache dot org)
- * @author Danny Mui (danny at muibros.com)
- * @author Amol S. Deshmukh < amol at ap ache dot org >
- */
-public final class TestNamedRange extends TestCase {
-
- private static HSSFWorkbook openSample(String sampleFileName) {
- return HSSFTestDataSamples.openSampleWorkbook(sampleFileName);
- }
-
- /** Test of TestCase method, of class test.RangeTest. */
- public void testNamedRange() {
- HSSFWorkbook wb = openSample("Simple.xls");
-
- //Creating new Named Range
- HSSFName newNamedRange = wb.createName();
-
- //Getting Sheet Name for the reference
- String sheetName = wb.getSheetName(0);
-
- //Setting its name
- newNamedRange.setNameName("RangeTest");
- //Setting its reference
- newNamedRange.setRefersToFormula(sheetName + "!$D$4:$E$8");
-
- //Getting NAmed Range
- HSSFName namedRange1 = wb.getNameAt(0);
- //Getting it sheet name
- sheetName = namedRange1.getSheetName();
-
- // sanity check
- SanityChecker c = new SanityChecker();
- c.checkHSSFWorkbook(wb);
-
- wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
- HSSFName nm =wb.getNameAt(wb.getNameIndex("RangeTest"));
- assertTrue("Name is "+nm.getNameName(),"RangeTest".equals(nm.getNameName()));
- assertEquals(wb.getSheetName(0)+"!$D$4:$E$8", nm.getRefersToFormula());
- }
-
- /**
- * Reads an excel file already containing a named range.
- *
- * Addresses Bug #9632 - */ - public void testNamedRead() { - HSSFWorkbook wb = openSample("namedinput.xls"); - - //Get index of the namedrange with the name = "NamedRangeName" , which was defined in input.xls as A1:D10 - int NamedRangeIndex = wb.getNameIndex("NamedRangeName"); - - //Getting NAmed Range - HSSFName namedRange1 = wb.getNameAt(NamedRangeIndex); - String sheetName = wb.getSheetName(0); - - //Getting its reference - String reference = namedRange1.getRefersToFormula(); - - assertEquals(sheetName+"!$A$1:$D$10", reference); - - HSSFName namedRange2 = wb.getNameAt(1); - - assertEquals(sheetName+"!$D$17:$G$27", namedRange2.getRefersToFormula()); - assertEquals("SecondNamedRange", namedRange2.getNameName()); - } - - /** - * Reads an excel file already containing a named range and updates it - *
- * Addresses Bug #16411 - */ - public void testNamedReadModify() { - HSSFWorkbook wb = openSample("namedinput.xls"); - - HSSFName name = wb.getNameAt(0); - String sheetName = wb.getSheetName(0); - - assertEquals(sheetName+"!$A$1:$D$10", name.getRefersToFormula()); - - name = wb.getNameAt(1); - String newReference = sheetName +"!$A$1:$C$36"; - - name.setRefersToFormula(newReference); - assertEquals(newReference, name.getRefersToFormula()); - } - - /** - * Test that multiple named ranges can be added written and read - */ - public void testMultipleNamedWrite() { - HSSFWorkbook wb = new HSSFWorkbook(); - - - wb.createSheet("testSheet1"); - String sheetName = wb.getSheetName(0); - - assertEquals("testSheet1", sheetName); - - //Creating new Named Range - HSSFName newNamedRange = wb.createName(); - - newNamedRange.setNameName("RangeTest"); - newNamedRange.setRefersToFormula(sheetName + "!$D$4:$E$8"); - - //Creating another new Named Range - HSSFName newNamedRange2 = wb.createName(); - - newNamedRange2.setNameName("AnotherTest"); - newNamedRange2.setRefersToFormula(sheetName + "!$F$1:$G$6"); - - wb.getNameAt(0); - - wb = HSSFTestDataSamples.writeOutAndReadBack(wb); - HSSFName nm =wb.getNameAt(wb.getNameIndex("RangeTest")); - assertTrue("Name is "+nm.getNameName(),"RangeTest".equals(nm.getNameName())); - assertTrue("Reference is "+nm.getRefersToFormula(),(wb.getSheetName(0)+"!$D$4:$E$8").equals(nm.getRefersToFormula())); - - nm = wb.getNameAt(wb.getNameIndex("AnotherTest")); - assertTrue("Name is "+nm.getNameName(),"AnotherTest".equals(nm.getNameName())); - assertTrue("Reference is "+nm.getRefersToFormula(),newNamedRange2.getRefersToFormula().equals(nm.getRefersToFormula())); - } - - /** - * Test case provided by czhang@cambian.com (Chun Zhang) - *
- * Addresses Bug #13775
- */
- public void testMultiNamedRange() {
-
- // Create a new workbook
- HSSFWorkbook wb = new HSSFWorkbook ();
-
-
- // Create a worksheet 'sheet1' in the new workbook
- wb.createSheet ();
- wb.setSheetName (0, "sheet1");
-
- // Create another worksheet 'sheet2' in the new workbook
- wb.createSheet ();
- wb.setSheetName (1, "sheet2");
-
- // Create a new named range for worksheet 'sheet1'
- HSSFName namedRange1 = wb.createName();
-
- // Set the name for the named range for worksheet 'sheet1'
- namedRange1.setNameName("RangeTest1");
-
- // Set the reference for the named range for worksheet 'sheet1'
- namedRange1.setRefersToFormula("sheet1" + "!$A$1:$L$41");
-
- // Create a new named range for worksheet 'sheet2'
- HSSFName namedRange2 = wb.createName();
-
- // Set the name for the named range for worksheet 'sheet2'
- namedRange2.setNameName("RangeTest2");
-
- // Set the reference for the named range for worksheet 'sheet2'
- namedRange2.setRefersToFormula("sheet2" + "!$A$1:$O$21");
-
- // Write the workbook to a file
- // Read the Excel file and verify its content
- wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
- HSSFName nm1 =wb.getNameAt(wb.getNameIndex("RangeTest1"));
- assertTrue("Name is "+nm1.getNameName(),"RangeTest1".equals(nm1.getNameName()));
- assertTrue("Reference is "+nm1.getRefersToFormula(),(wb.getSheetName(0)+"!$A$1:$L$41").equals(nm1.getRefersToFormula()));
-
- HSSFName nm2 =wb.getNameAt(wb.getNameIndex("RangeTest2"));
- assertTrue("Name is "+nm2.getNameName(),"RangeTest2".equals(nm2.getNameName()));
- assertTrue("Reference is "+nm2.getRefersToFormula(),(wb.getSheetName(1)+"!$A$1:$O$21").equals(nm2.getRefersToFormula()));
- }
-
- public void testUnicodeNamedRange() {
- HSSFWorkbook workBook = new HSSFWorkbook();
- workBook.createSheet("Test");
- HSSFName name = workBook.createName();
- name.setNameName("\u03B1");
- name.setRefersToFormula("Test!$D$3:$E$8");
-
-
- HSSFWorkbook workBook2 = HSSFTestDataSamples.writeOutAndReadBack(workBook);
- HSSFName name2 = workBook2.getNameAt(0);
-
- assertEquals("\u03B1", name2.getNameName());
- assertEquals("Test!$D$3:$E$8", name2.getRefersToFormula());
- }
-
- /**
- * Test to see if the print areas can be retrieved/created in memory
- */
- public void testSinglePrintArea() {
- HSSFWorkbook workbook = new HSSFWorkbook();
- 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 + "'!$A$1:$B$1", retrievedPrintArea);
- }
-
- /**
- * For Convenience, don't force sheet names to be used
- */
- public void testSinglePrintAreaWOSheet()
- {
- HSSFWorkbook workbook = new HSSFWorkbook();
- 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() {
- HSSFWorkbook workbook = openSample("SimpleWithPrintArea.xls");
-
- String sheetName = workbook.getSheetName(0);
- String reference = sheetName+"!$A$1:$C$5";
-
- assertEquals(reference, workbook.getPrintArea(0));
- }
-
- /**
- * Test to see if the print area made it to the file
- */
- public void testPrintAreaFile() {
- HSSFWorkbook workbook = new HSSFWorkbook();
- workbook.createSheet("Test Print Area");
- String sheetName = workbook.getSheetName(0);
-
-
- String reference = "$A$1:$B$1";
- workbook.setPrintArea(0, reference);
-
- workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);
-
- String retrievedPrintArea = workbook.getPrintArea(0);
- assertNotNull("Print Area not defined for first sheet", retrievedPrintArea);
- assertEquals("References Match", "'" + sheetName + "'!$A$1:$B$1", retrievedPrintArea);
- }
-
- /**
- * Test to see if multiple print areas made it to the file
- */
- public void testMultiplePrintAreaFile() {
- HSSFWorkbook workbook = new HSSFWorkbook();
-
- workbook.createSheet("Sheet1");
- workbook.createSheet("Sheet2");
- workbook.createSheet("Sheet3");
- String reference1 = "$A$1:$B$1";
- String reference2 = "$B$2:$D$5";
- String reference3 = "$D$2:$F$5";
-
- workbook.setPrintArea(0, reference1);
- workbook.setPrintArea(1, reference2);
- workbook.setPrintArea(2, reference3);
-
- //Check created print areas
- String retrievedPrintArea;
-
- retrievedPrintArea = workbook.getPrintArea(0);
- assertNotNull("Print Area Not Found (Sheet 1)", retrievedPrintArea);
- assertEquals("Sheet1!" + reference1, retrievedPrintArea);
-
- retrievedPrintArea = workbook.getPrintArea(1);
- assertNotNull("Print Area Not Found (Sheet 2)", retrievedPrintArea);
- assertEquals("Sheet2!" + reference2, retrievedPrintArea);
-
- retrievedPrintArea = workbook.getPrintArea(2);
- assertNotNull("Print Area Not Found (Sheet 3)", retrievedPrintArea);
- assertEquals("Sheet3!" + reference3, retrievedPrintArea);
-
- // Check print areas after re-reading workbook
- workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);
-
- retrievedPrintArea = workbook.getPrintArea(0);
- assertNotNull("Print Area Not Found (Sheet 1)", retrievedPrintArea);
- assertEquals("Sheet1!" + reference1, retrievedPrintArea);
-
- retrievedPrintArea = workbook.getPrintArea(1);
- assertNotNull("Print Area Not Found (Sheet 2)", retrievedPrintArea);
- assertEquals("Sheet2!" + reference2, retrievedPrintArea);
-
- retrievedPrintArea = workbook.getPrintArea(2);
- assertNotNull("Print Area Not Found (Sheet 3)", retrievedPrintArea);
- assertEquals("Sheet3!" + reference3, retrievedPrintArea);
- }
-
- /**
- * Tests the setting of print areas with coordinates (Row/Column designations)
- *
- */
- public void testPrintAreaCoords(){
- HSSFWorkbook workbook = new HSSFWorkbook();
- workbook.createSheet("Test Print Area");
- String sheetName = workbook.getSheetName(0);
-
- workbook.setPrintArea(0, 0, 1, 0, 0);
-
- String retrievedPrintArea = workbook.getPrintArea(0);
-
- assertNotNull("Print Area not defined for first sheet", retrievedPrintArea);
- assertEquals("'" + sheetName + "'!$A$1:$B$1", retrievedPrintArea);
- }
-
-
- /**
- * Tests the parsing of union area expressions, and re-display in the presence of sheet names
- * with special characters.
- */
- public void testPrintAreaUnion(){
- HSSFWorkbook workbook = new HSSFWorkbook();
- workbook.createSheet("Test Print Area");
-
- String reference = "$A$1:$B$1,$D$1:$F$2";
- workbook.setPrintArea(0, reference);
- String retrievedPrintArea = workbook.getPrintArea(0);
- assertNotNull("Print Area not defined for first sheet", retrievedPrintArea);
- assertEquals("'Test Print Area'!$A$1:$B$1,'Test Print Area'!$D$1:$F$2", retrievedPrintArea);
- }
-
- /**
- * Verifies an existing print area is deleted
- *
- */
- public void testPrintAreaRemove() {
- HSSFWorkbook workbook = new HSSFWorkbook();
- workbook.createSheet("Test Print Area");
- workbook.getSheetName(0);
-
- 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));
- }
-
- /**
- * Verifies correct functioning for "single cell named range" (aka "named cell")
- */
- public void testNamedCell_1() {
-
- // setup for this testcase
- String sheetName = "Test Named Cell";
- String cellName = "A name for a named cell";
- String cellValue = "TEST Value";
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet(sheetName);
- sheet.createRow(0).createCell(0).setCellValue(new HSSFRichTextString(cellValue));
-
- // create named range for a single cell using areareference
- HSSFName namedCell = wb.createName();
- namedCell.setNameName(cellName);
- String reference = "'" + sheetName + "'" + "!A1:A1";
- namedCell.setRefersToFormula(reference);
-
- // retrieve the newly created named range
- int namedCellIdx = wb.getNameIndex(cellName);
- HSSFName aNamedCell = wb.getNameAt(namedCellIdx);
- assertNotNull(aNamedCell);
-
- // retrieve the cell at the named range and test its contents
- AreaReference aref = new AreaReference(aNamedCell.getRefersToFormula());
- assertTrue("Should be exactly 1 cell in the named cell :'" +cellName+"'", aref.isSingleCell());
-
- CellReference cref = aref.getFirstCell();
- assertNotNull(cref);
- HSSFSheet s = wb.getSheet(cref.getSheetName());
- assertNotNull(s);
- HSSFRow r = sheet.getRow(cref.getRow());
- HSSFCell c = r.getCell(cref.getCol());
- String contents = c.getRichStringCellValue().getString();
- assertEquals("Contents of cell retrieved by its named reference", contents, cellValue);
- }
-
- /**
- * Verifies correct functioning for "single cell named range" (aka "named cell")
- */
- public void testNamedCell_2() {
-
- // setup for this testcase
- String sname = "TestSheet", cname = "TestName", cvalue = "TestVal";
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet(sname);
- sheet.createRow(0).createCell(0).setCellValue(new HSSFRichTextString(cvalue));
-
- // create named range for a single cell using cellreference
- HSSFName namedCell = wb.createName();
- namedCell.setNameName(cname);
- String reference = sname+"!A1";
- namedCell.setRefersToFormula(reference);
-
- // retrieve the newly created named range
- int namedCellIdx = wb.getNameIndex(cname);
- HSSFName aNamedCell = wb.getNameAt(namedCellIdx);
- assertNotNull(aNamedCell);
-
- // retrieve the cell at the named range and test its contents
- CellReference cref = new CellReference(aNamedCell.getRefersToFormula());
- assertNotNull(cref);
- HSSFSheet s = wb.getSheet(cref.getSheetName());
- HSSFRow r = sheet.getRow(cref.getRow());
- HSSFCell c = r.getCell(cref.getCol());
- String contents = c.getRichStringCellValue().getString();
- assertEquals("Contents of cell retrieved by its named reference", contents, cvalue);
- }
-
- public void testDeletedReference() throws Exception {
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("24207.xls");
- assertEquals(2, wb.getNumberOfNames());
-
- HSSFName name1 = wb.getNameAt(0);
- assertEquals("a", name1.getNameName());
- assertEquals("Sheet1!$A$1", name1.getRefersToFormula());
- new AreaReference(name1.getRefersToFormula());
- assertTrue("Successfully constructed first reference", true);
-
- HSSFName name2 = wb.getNameAt(1);
- assertEquals("b", name2.getNameName());
- assertEquals("Sheet1!#REF!", name2.getRefersToFormula());
- assertTrue(name2.isDeleted());
- try {
- new AreaReference(name2.getRefersToFormula());
- fail("attempt to supply an invalid reference to AreaReference constructor results in exception");
- } catch (StringIndexOutOfBoundsException e) { // TODO - use a different exception for this condition
- // expected during successful test
- }
- }
-
- public void testRepeatingRowsAndColumsNames() {
- // First test that setting RR&C for same sheet more than once only creates a
- // single Print_Titles built-in record
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet("FirstSheet");
-
- // set repeating rows and columns twice for the first sheet
- for (int i = 0; i < 2; i++) {
- wb.setRepeatingRowsAndColumns(0, 0, 0, 0, 3-1);
- sheet.createFreezePane(0, 3);
- }
- assertEquals(1, wb.getNumberOfNames());
- HSSFName nr1 = wb.getNameAt(0);
-
- assertEquals("Print_Titles", nr1.getNameName());
- if (false) {
- // TODO - full column references not rendering properly, absolute markers not present either
- assertEquals("FirstSheet!$A:$A,FirstSheet!$1:$3", nr1.getRefersToFormula());
- } else {
- assertEquals("FirstSheet!A:A,FirstSheet!$A$1:$IV$3", nr1.getRefersToFormula());
- }
-
- // Save and re-open
- HSSFWorkbook nwb = HSSFTestDataSamples.writeOutAndReadBack(wb);
-
- assertEquals(1, nwb.getNumberOfNames());
- nr1 = nwb.getNameAt(0);
-
- assertEquals("Print_Titles", nr1.getNameName());
- assertEquals("FirstSheet!A:A,FirstSheet!$A$1:$IV$3", nr1.getRefersToFormula());
-
- // check that setting RR&C on a second sheet causes a new Print_Titles built-in
- // name to be created
- sheet = nwb.createSheet("SecondSheet");
- nwb.setRepeatingRowsAndColumns(1, 1, 2, 0, 0);
-
- assertEquals(2, nwb.getNumberOfNames());
- HSSFName nr2 = nwb.getNameAt(1);
-
- assertEquals("Print_Titles", nr2.getNameName());
- assertEquals("SecondSheet!B:C,SecondSheet!$A$1:$IV$1", nr2.getRefersToFormula());
-
- if (false) {
- // In case you fancy checking in excel, to ensure it
- // won't complain about the file now
- try {
- File tempFile = File.createTempFile("POI-45126-", ".xls");
- FileOutputStream fout = new FileOutputStream(tempFile);
- nwb.write(fout);
- fout.close();
- System.out.println("check out " + tempFile.getAbsolutePath());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- /**
- * When setting A1 type of referencese HSSFName.setRefersToFormula
- * must set the type of operands to Ptg.CLASS_REF,
- * otherwise created named don't appear in the dropdown to the left opf formula bar in Excel
- */
- public void testTypeOfRootPtg(){
- HSSFWorkbook wb = new HSSFWorkbook();
- wb.createSheet("CSCO");
-
- Ptg[] ptgs = HSSFFormulaParser.parse("CSCO!$E$71", wb, FormulaType.NAMEDRANGE, 0);
- for (int i = 0; i < ptgs.length; i++) {
- assertEquals('R', ptgs[i].getRVAType());
- }
-
- }
-
- public void testScope() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sh1 = wb.createSheet();
- HSSFSheet sh2 = wb.createSheet();
-
- HSSFName name;
-
- name = wb.createName();
- name.setNameName("aaa");
- name = wb.createName();
- try {
- name.setNameName("aaa");
- fail("Expected exception");
- } catch(Exception e){
- assertEquals("The workbook already contains this name: aaa", e.getMessage());
- name.setNameName("aaa-2");
- }
-
- name = wb.createName();
- name.setSheetIndex(0);
- name.setNameName("aaa");
- name = wb.createName();
- name.setSheetIndex(0);
- try {
- name.setNameName("aaa");
- fail("Expected exception");
- } catch(Exception e){
- assertEquals("The sheet already contains this name: aaa", e.getMessage());
- name.setNameName("aaa-2");
- }
-
- name = wb.createName();
- name.setSheetIndex(1);
- name.setNameName("aaa");
- name = wb.createName();
- name.setSheetIndex(1);
- try {
- name.setNameName("aaa");
- fail("Expected exception");
- } catch(Exception e){
- assertEquals("The sheet already contains this name: aaa", e.getMessage());
- name.setNameName("aaa-2");
- }
-
- int cnt = 0;
- for (int i = 0; i < wb.getNumberOfNames(); i++) {
- if("aaa".equals(wb.getNameName(i))) cnt++;
- }
- assertEquals(3, cnt);
- }
-}
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java b/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java
index 2a9215285..a90aa2908 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestUnicodeWorkbook.java
@@ -16,132 +16,39 @@
*/
package org.apache.poi.hssf.usermodel;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileInputStream;
-
-import org.apache.poi.util.TempFile;
-
import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
public class TestUnicodeWorkbook extends TestCase {
- public TestUnicodeWorkbook(String s) {
- super(s);
- }
-
- /** Tests that all of the unicode capable string fields can be set, written and then read back
- *
- *
- */
- public void testUnicodeInAll() throws Exception {
- HSSFWorkbook wb = new HSSFWorkbook();
- //Create a unicode dataformat (contains euro symbol)
- HSSFDataFormat df = wb.createDataFormat();
- final String formatStr = "_([$\u20ac-2]\\\\\\ * #,##0.00_);_([$\u20ac-2]\\\\\\ * \\\\\\(#,##0.00\\\\\\);_([$\u20ac-2]\\\\\\ *\\\"\\-\\\\\"??_);_(@_)";
- short fmt = df.getFormat(formatStr);
-
- //Create a unicode sheet name (euro symbol)
- HSSFSheet s = wb.createSheet("\u20ac");
-
- //Set a unicode header (you guessed it the euro symbol)
- HSSFHeader h = s.getHeader();
- h.setCenter("\u20ac");
- h.setLeft("\u20ac");
- h.setRight("\u20ac");
-
- //Set a unicode footer
- HSSFFooter f = s.getFooter();
- f.setCenter("\u20ac");
- f.setLeft("\u20ac");
- f.setRight("\u20ac");
-
- HSSFRow r = s.createRow(0);
- HSSFCell c = r.createCell(1);
- c.setCellValue(12.34);
- c.getCellStyle().setDataFormat(fmt);
-
- HSSFCell c2 = r.createCell(2);
- c.setCellValue(new HSSFRichTextString("\u20ac"));
-
- HSSFCell c3 = r.createCell(3);
- String formulaString = "TEXT(12.34,\"\u20ac###,##\")";
- c3.setCellFormula(formulaString);
-
-
- File tempFile = TempFile.createTempFile("unicode", "test.xls");
- FileOutputStream stream = new FileOutputStream(tempFile);
- wb.write(stream);
-
- wb = null;
- FileInputStream in = new FileInputStream(tempFile);
- wb = new HSSFWorkbook(in);
-
- //Test the sheetname
- s = wb.getSheet("\u20ac");
- assertNotNull(s);
-
- //Test the header
- h = s.getHeader();
- assertEquals(h.getCenter(), "\u20ac");
- assertEquals(h.getLeft(), "\u20ac");
- assertEquals(h.getRight(), "\u20ac");
-
- //Test the footer
- f = s.getFooter();
- assertEquals(f.getCenter(), "\u20ac");
- assertEquals(f.getLeft(), "\u20ac");
- assertEquals(f.getRight(), "\u20ac");
-
- //Test the dataformat
- r = s.getRow(0);
- c = r.getCell(1);
- df = wb.createDataFormat();
- assertEquals(formatStr, df.getFormat(c.getCellStyle().getDataFormat()));
-
- //Test the cell string value
- c2 = r.getCell(2);
- assertEquals(c.getRichStringCellValue().getString(), "\u20ac");
-
- //Test the cell formula
- c3 = r.getCell(3);
- assertEquals(c3.getCellFormula(), formulaString);
- }
-
/** Tests Bug38230
* That a Umlat is written and then read back.
* It should have been written as a compressed unicode.
- *
- *
+ *
+ *
*
*/
public void testUmlatReadWrite() throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
-
+
//Create a unicode sheet name (euro symbol)
HSSFSheet s = wb.createSheet("test");
-
+
HSSFRow r = s.createRow(0);
HSSFCell c = r.createCell(1);
c.setCellValue(new HSSFRichTextString("\u00e4"));
-
+
//Confirm that the sring will be compressed
assertEquals(c.getRichStringCellValue().getUnicodeString().getOptionFlags(), 0);
-
- File tempFile = TempFile.createTempFile("umlat", "test.xls");
- FileOutputStream stream = new FileOutputStream(tempFile);
- wb.write(stream);
-
- wb = null;
- FileInputStream in = new FileInputStream(tempFile);
- wb = new HSSFWorkbook(in);
+
+ wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
//Test the sheetname
s = wb.getSheet("test");
assertNotNull(s);
-
+
c = r.getCell(1);
assertEquals(c.getRichStringCellValue().getString(), "\u00e4");
- }
+ }
}
diff --git a/src/testcases/org/apache/poi/ss/ITestDataProvider.java b/src/testcases/org/apache/poi/ss/ITestDataProvider.java
index f3ca3b256..983147691 100755
--- a/src/testcases/org/apache/poi/ss/ITestDataProvider.java
+++ b/src/testcases/org/apache/poi/ss/ITestDataProvider.java
@@ -44,4 +44,10 @@ public interface ITestDataProvider {
*/
Workbook createWorkbook();
+ /**
+ * Opens a sample file from the standard HSSF test data directory
+ *
+ * @return an open InputStream for the specified sample file
+ */
+ byte[] getTestDataFileContent(String fileName);
}
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java
new file mode 100755
index 000000000..ef6d0a14f
--- /dev/null
+++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java
@@ -0,0 +1,298 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.ss.usermodel;
+
+import junit.framework.TestCase;
+import junit.framework.AssertionFailedError;
+import org.apache.poi.ss.ITestDataProvider;
+import org.apache.poi.ss.util.CellRangeAddress;
+
+/**
+ * A base class for bugzilla issues that can be described in terms of common ss interfaces.
+ *
+ * @author Yegor Kozlov
+ */
+public abstract class BaseTestBugzillaIssues extends TestCase {
+
+ protected abstract ITestDataProvider getTestDataProvider();
+
+ /**
+ *
+ * Test writing a hyperlink
+ * Open resulting sheet in Excel and check that A1 contains a hyperlink
+ *
+ * Also tests bug 15353 (problems with hyperlinks to Google)
+ */
+ public void test23094() {
+ Workbook wb = getTestDataProvider().createWorkbook();
+ Sheet s = wb.createSheet();
+ Row r = s.createRow(0);
+ r.createCell(0).setCellFormula("HYPERLINK(\"http://jakarta.apache.org\",\"Jakarta\")");
+ r.createCell(1).setCellFormula("HYPERLINK(\"http://google.com\",\"Google\")");
+
+ wb = getTestDataProvider().writeOutAndReadBack(wb);
+ r = wb.getSheetAt(0).getRow(0);
+
+ Cell cell_0 = r.getCell(0);
+ assertEquals("HYPERLINK(\"http://jakarta.apache.org\",\"Jakarta\")", cell_0.getCellFormula());
+ Cell cell_1 = r.getCell(1);
+ assertEquals("HYPERLINK(\"http://google.com\",\"Google\")", cell_1.getCellFormula());
+ }
+
+ /**
+ * test writing a file with large number of unique strings,
+ * open resulting file in Excel to check results!
+ * @param num the number of strings to generate
+ */
+ public void baseTest15375(int num) {
+ Workbook wb = getTestDataProvider().createWorkbook();
+ Sheet sheet = wb.createSheet();
+ CreationHelper factory = wb.getCreationHelper();
+
+ String tmp1 = null;
+ String tmp2 = null;
+ String tmp3 = null;
+
+ for (int i = 0; i < num; i++) {
+ tmp1 = "Test1" + i;
+ tmp2 = "Test2" + i;
+ tmp3 = "Test3" + i;
+
+ Row row = sheet.createRow(i);
+
+ Cell cell = row.createCell(0);
+ cell.setCellValue(factory.createRichTextString(tmp1));
+ cell = row.createCell(1);
+ cell.setCellValue(factory.createRichTextString(tmp2));
+ cell = row.createCell(2);
+ cell.setCellValue(factory.createRichTextString(tmp3));
+ }
+ wb = getTestDataProvider().writeOutAndReadBack(wb);
+ for (int i = 0; i < num; i++) {
+ tmp1 = "Test1" + i;
+ tmp2 = "Test2" + i;
+ tmp3 = "Test3" + i;
+
+ Row row = sheet.getRow(i);
+
+ assertEquals(tmp1, row.getCell(0).getStringCellValue());
+ assertEquals(tmp2, row.getCell(1).getStringCellValue());
+ assertEquals(tmp3, row.getCell(2).getStringCellValue());
+ }
+ }
+
+ /**
+ * Merged regions were being removed from the parent in cloned sheets
+ */
+ public void test22720() {
+ Workbook workBook = getTestDataProvider().createWorkbook();
+ workBook.createSheet("TEST");
+ Sheet template = workBook.getSheetAt(0);
+
+ template.addMergedRegion(new CellRangeAddress(0, 1, 0, 2));
+ template.addMergedRegion(new CellRangeAddress(1, 2, 0, 2));
+
+ Sheet clone = workBook.cloneSheet(0);
+ int originalMerged = template.getNumMergedRegions();
+ assertEquals("2 merged regions", 2, originalMerged);
+
+ //remove merged regions from clone
+ for (int i=template.getNumMergedRegions()-1; i>=0; i--) {
+ clone.removeMergedRegion(i);
+ }
+
+ assertEquals("Original Sheet's Merged Regions were removed", originalMerged, template.getNumMergedRegions());
+ //check if template's merged regions are OK
+ if (template.getNumMergedRegions()>0) {
+ // fetch the first merged region...EXCEPTION OCCURS HERE
+ template.getMergedRegion(0);
+ }
+ //make sure we dont exception
+
+ }
+
+ public void test28031() {
+ Workbook wb = getTestDataProvider().createWorkbook();
+ Sheet sheet = wb.createSheet();
+ wb.setSheetName(0, "Sheet1");
+
+ Row row = sheet.createRow(0);
+ Cell cell = row.createCell(0);
+ String formulaText =
+ "IF(ROUND(A2*B2*C2,2)>ROUND(B2*D2,2),ROUND(A2*B2*C2,2),ROUND(B2*D2,2))";
+ cell.setCellFormula(formulaText);
+
+ assertEquals(formulaText, cell.getCellFormula());
+ wb = getTestDataProvider().writeOutAndReadBack(wb);
+ cell = wb.getSheetAt(0).getRow(0).getCell(0);
+ assertEquals("IF(ROUND(A2*B2*C2,2)>ROUND(B2*D2,2),ROUND(A2*B2*C2,2),ROUND(B2*D2,2))", cell.getCellFormula());
+ }
+
+ /**
+ * Bug 21334: "File error: data may have been lost" with a file
+ * that contains macros and this formula:
+ * {=SUM(IF(FREQUENCY(IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),""),IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),""))>0,1))}
+ */
+ public void test21334() {
+ Workbook wb = getTestDataProvider().createWorkbook();
+ Sheet sh = wb.createSheet();
+ Cell cell = sh.createRow(0).createCell(0);
+ String formula = "SUM(IF(FREQUENCY(IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),\"\"),IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),\"\"))>0,1))";
+ cell.setCellFormula(formula);
+
+ Workbook wb_sv = getTestDataProvider().writeOutAndReadBack(wb);
+ Cell cell_sv = wb_sv.getSheetAt(0).getRow(0).getCell(0);
+ assertEquals(formula, cell_sv.getCellFormula());
+ }
+
+ /** another test for the number of unique strings issue
+ *test opening the resulting file in Excel*/
+ public void test22568() {
+ int r=2000;int c=3;
+
+ Workbook wb = getTestDataProvider().createWorkbook();
+ Sheet sheet = wb.createSheet("ExcelTest") ;
+
+ int col_cnt=0, rw_cnt=0 ;
+
+ col_cnt = c;
+ rw_cnt = r;
+
+ Row rw ;
+ rw = sheet.createRow(0) ;
+ //Header row
+ for(int j=0; j