瀏覽代碼

Revert parts of an inadvertent previous checkin, keep build.xml and @Override changes

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1629653 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_11_BETA3
Dominik Stadler 9 年之前
父節點
當前提交
e270c4ca5c

+ 0
- 3
src/java/org/apache/poi/hssf/usermodel/HSSFComment.java 查看文件

@@ -132,9 +132,6 @@ public class HSSFComment extends HSSFTextbox implements Comment {
CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) getObjRecord().getSubRecords().get(0);
cod.setObjectId((short) (shapeId % 1024));
_note.setShapeId(shapeId % 1024);
/* This breaks TestCloneSheets!
* cod.setObjectId(shapeId);
_note.setShapeId(shapeId); */
}

/**

+ 8
- 33
src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java 查看文件

@@ -19,7 +19,11 @@

package org.apache.poi.xssf.streaming;

import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.io.File;
import java.io.FileOutputStream;
@@ -234,6 +238,7 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
assertEquals("value?", cell.getStringCellValue());

assertTrue(wb.dispose());

}

@Test
@@ -310,18 +315,16 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
}

@Test
public void workbookDispose() throws IOException
public void workbookDispose()
{
SXSSFWorkbook wb = new SXSSFWorkbook();
// the underlying writer is SheetDataWriter
assertWorkbookDispose(wb);
wb.close();

wb = new SXSSFWorkbook();
wb.setCompressTempFiles(true);
// the underlying writer is GZIPSheetDataWriter
assertWorkbookDispose(wb);
wb.close();

}

@@ -331,12 +334,9 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
Workbook wb = new SXSSFWorkbook(10);
populateWorkbook(wb);
saveTwice(wb);
wb.close();
wb = new XSSFWorkbook();
populateWorkbook(wb);
saveTwice(wb);
wb.close();
}

// Crashes the JVM because of documented JVM behavior with concurrent writing/reading of zip-files
@@ -371,7 +371,6 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
} finally {
assertTrue(wb.dispose());
}
wb.close();
}
out.delete();
}
@@ -405,30 +404,6 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
private static class NullOutputStream extends OutputStream {
@Override
public void write(int b) throws IOException {
// nothing to do here
}
}
@Test
public void testBug54523() throws IOException {
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();

for (int i = 0; i < 81000; i++) {
Row row = sh.createRow(i);
for (int j = 0; j < 1000; j++) {
Cell cell = row.createCell(j);
cell.setCellValue("dddd");
}
if (i % 100 == 0){
System.out.println("x - " + i);
}
}

FileOutputStream out = new FileOutputStream("C:\\temp\\54523_large.xlsx");
wb.write(out);
out.close();
wb.dispose();
wb.close();
}
}

+ 0
- 50
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java 查看文件

@@ -17,15 +17,9 @@

package org.apache.poi.xssf.usermodel;

import java.util.ArrayList;
import java.util.List;

import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.BaseTestRow;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.XSSFITestDataProvider;
import org.apache.poi.xssf.XSSFTestDataSamples;

/**
* Tests for XSSFRow
@@ -43,48 +37,4 @@ public final class TestXSSFRow extends BaseTestRow {
public void testCellBounds() {
baseTestCellBounds(SpreadsheetVersion.EXCEL2007.getLastColumnIndex());
}

public void test56490() {
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("56490.xlsx");
XSSFSheet sheet = wb.getSheetAt(0);

String columnWanted = "Link";
Integer columnNo = null;
List<Cell> cells = new ArrayList<Cell>();

// TODO: change this!!
assertEquals(-1, sheet.getFirstRowNum());
assertEquals(-1, sheet.getLastRowNum());
Row firstRow = sheet.getRow(-1);
assertNotNull(firstRow);
assertNotNull(firstRow.iterator());
for(Row row : sheet) {
for(Cell cell : row) {
System.out.println("Cell in Row: " + row.getRowNum() + ": " + cell.toString());
}
}

for (Cell cell : firstRow) {
if (cell.getStringCellValue().equals(columnWanted)) {
columnNo = cell.getColumnIndex();
}
}

if (columnNo != null) {
for (Row row : sheet) {
Cell c = row.getCell(columnNo);
if (c == null || c.getCellType() == Cell.CELL_TYPE_BLANK) {
} else {
cells.add(c);
}

}

} else {
System.out.println("could not find column" + columnWanted
+ "in first row");
}
}
}

+ 18
- 18
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java 查看文件

@@ -17,7 +17,13 @@

package org.apache.poi.xssf.usermodel;

import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -36,7 +42,17 @@ import org.apache.poi.openxml4j.opc.PackagePartName;
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
import org.apache.poi.openxml4j.opc.internal.MemoryPackagePart;
import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
import org.apache.poi.ss.usermodel.*;

import org.apache.poi.ss.usermodel.BaseTestWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.IOUtils;
@@ -752,20 +768,4 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
setPivotData(wb2);
assertTrue(wb2.getPivotTables().size() == 2);
}

@Test
public void testBug55644() throws IOException {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("students");
XSSFRow row = sheet.createRow(1);
XSSFCell cell = row.createCell(1);
cell.setCellValue("sandeepzzzzzzzzzzzzzzzzzzzzzzzzz");
sheet.autoSizeColumn(1);

FileOutputStream fileOut = new FileOutputStream("C:\\temp\\55644.xlsx");
wb.write(fileOut);
fileOut.close();
wb.close();
}
}

+ 2
- 4
src/testcases/org/apache/poi/POIDataSamples.java 查看文件

@@ -196,11 +196,9 @@ public final class POIDataSamples {
_sampleDataIsAvaliableOnClassPath = true;
return;
}
dataDirName = "test-data";
/*throw new RuntimeException("Must set system property '" +
TEST_PROPERTY + "' before running tests");*/
throw new RuntimeException("Must set system property '" +
TEST_PROPERTY + "' before running tests");
}
File dataDir = new File(dataDirName, _moduleDir);
if (!dataDir.exists()) {

+ 57
- 123
src/testcases/org/apache/poi/hssf/usermodel/TestCellStyle.java 查看文件

@@ -26,7 +26,6 @@ import java.util.Date;
import junit.framework.TestCase;

import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.dev.BiffViewer;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
@@ -127,7 +126,7 @@ public final class TestCellStyle extends TestCase {
assertEquals("LAST ROW ", 0, s.getLastRowNum());
assertEquals("FIRST ROW ", 0, s.getFirstRowNum());
}
public void testHashEquals() {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
@@ -136,21 +135,21 @@ public final class TestCellStyle extends TestCase {
HSSFRow row = s.createRow(0);
HSSFCell cell1 = row.createCell(1);
HSSFCell cell2 = row.createCell(2);
cs1.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/dd/yy"));
cell1.setCellStyle(cs1);
cell1.setCellValue(new Date());
cell2.setCellStyle(cs2);
cell2.setCellValue(new Date());
assertEquals(cs1.hashCode(), cs1.hashCode());
assertEquals(cs2.hashCode(), cs2.hashCode());
assertTrue(cs1.equals(cs1));
assertTrue(cs2.equals(cs2));
// Change cs1, hash will alter
int hash1 = cs1.hashCode();
cs1.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/dd/yy"));
@@ -211,7 +210,7 @@ public final class TestCellStyle extends TestCase {
assertEquals("LAST ROW == 99", 99, s.getLastRowNum());
assertEquals("FIRST ROW == 0", 0, s.getFirstRowNum());
}
/**
* Cloning one HSSFCellStyle onto Another, same
* HSSFWorkbook
@@ -221,63 +220,63 @@ public final class TestCellStyle extends TestCase {
HSSFFont fnt = wb.createFont();
fnt.setFontName("TestingFont");
assertEquals(5, wb.getNumberOfFonts());
HSSFCellStyle orig = wb.createCellStyle();
orig.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
orig.setFont(fnt);
orig.setDataFormat((short)18);
assertTrue(HSSFCellStyle.ALIGN_RIGHT == orig.getAlignment());
assertTrue(fnt == orig.getFont(wb));
assertTrue(18 == orig.getDataFormat());
HSSFCellStyle clone = wb.createCellStyle();
assertFalse(HSSFCellStyle.ALIGN_RIGHT == clone.getAlignment());
assertFalse(fnt == clone.getFont(wb));
assertFalse(18 == clone.getDataFormat());
clone.cloneStyleFrom(orig);
assertTrue(HSSFCellStyle.ALIGN_RIGHT == clone.getAlignment());
assertTrue(fnt == clone.getFont(wb));
assertTrue(18 == clone.getDataFormat());
assertEquals(5, wb.getNumberOfFonts());
}
/**
* Cloning one HSSFCellStyle onto Another, across
* two different HSSFWorkbooks
*/
public void testCloneStyleDiffWB() {
HSSFWorkbook wbOrig = new HSSFWorkbook();
HSSFFont fnt = wbOrig.createFont();
fnt.setFontName("TestingFont");
assertEquals(5, wbOrig.getNumberOfFonts());
HSSFDataFormat fmt = wbOrig.createDataFormat();
fmt.getFormat("MadeUpOne");
fmt.getFormat("MadeUpTwo");
HSSFCellStyle orig = wbOrig.createCellStyle();
orig.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
orig.setFont(fnt);
orig.setDataFormat(fmt.getFormat("Test##"));
assertTrue(HSSFCellStyle.ALIGN_RIGHT == orig.getAlignment());
assertTrue(fnt == orig.getFont(wbOrig));
assertTrue(fmt.getFormat("Test##") == orig.getDataFormat());
// Now a style on another workbook
HSSFWorkbook wbClone = new HSSFWorkbook();
assertEquals(4, wbClone.getNumberOfFonts());
HSSFDataFormat fmtClone = wbClone.createDataFormat();
HSSFCellStyle clone = wbClone.createCellStyle();
assertEquals(4, wbClone.getNumberOfFonts());
assertFalse(HSSFCellStyle.ALIGN_RIGHT == clone.getAlignment());
assertFalse("TestingFont" == clone.getFont(wbClone).getFontName());
clone.cloneStyleFrom(orig);
assertTrue(HSSFCellStyle.ALIGN_RIGHT == clone.getAlignment());
assertTrue("TestingFont" == clone.getFont(wbClone).getFontName());
@@ -285,47 +284,47 @@ public final class TestCellStyle extends TestCase {
assertFalse(fmtClone.getFormat("Test##") == fmt.getFormat("Test##"));
assertEquals(5, wbClone.getNumberOfFonts());
}
public void testStyleNames() {
HSSFWorkbook wb = openSample("WithExtendedStyles.xls");
HSSFSheet s = wb.getSheetAt(0);
HSSFCell c1 = s.getRow(0).getCell(0);
HSSFCell c2 = s.getRow(1).getCell(0);
HSSFCell c3 = s.getRow(2).getCell(0);
HSSFCellStyle cs1 = c1.getCellStyle();
HSSFCellStyle cs2 = c2.getCellStyle();
HSSFCellStyle cs3 = c3.getCellStyle();
assertNotNull(cs1);
assertNotNull(cs2);
assertNotNull(cs3);
// Check we got the styles we'd expect
assertEquals(10, cs1.getFont(wb).getFontHeightInPoints());
assertEquals(9, cs2.getFont(wb).getFontHeightInPoints());
assertEquals(12, cs3.getFont(wb).getFontHeightInPoints());
assertEquals(15, cs1.getIndex());
assertEquals(23, cs2.getIndex());
assertEquals(24, cs3.getIndex());
assertNull(cs1.getParentStyle());
assertNotNull(cs2.getParentStyle());
assertNotNull(cs3.getParentStyle());
assertEquals(21, cs2.getParentStyle().getIndex());
assertEquals(22, cs3.getParentStyle().getIndex());
// Now check we can get style records for
// Now check we can get style records for
// the parent ones
assertNull(wb.getWorkbook().getStyleRecord(15));
assertNull(wb.getWorkbook().getStyleRecord(23));
assertNull(wb.getWorkbook().getStyleRecord(24));
assertNotNull(wb.getWorkbook().getStyleRecord(21));
assertNotNull(wb.getWorkbook().getStyleRecord(22));
// Now check the style names
assertEquals(null, cs1.getUserStyleName());
assertEquals(null, cs2.getUserStyleName());
@@ -338,112 +337,47 @@ public final class TestCellStyle extends TestCase {
c4.setCellStyle(cs2);
assertEquals("style1", c4.getCellStyle().getParentStyle().getUserStyleName());
}
public void testGetSetBorderHair() {
HSSFWorkbook wb = openSample("55341_CellStyleBorder.xls");
HSSFSheet s = wb.getSheetAt(0);
HSSFCellStyle cs;

cs = s.getRow(0).getCell(0).getCellStyle();
assertEquals(CellStyle.BORDER_HAIR, cs.getBorderRight());
cs = s.getRow(0).getCell(0).getCellStyle();
assertEquals(CellStyle.BORDER_HAIR, cs.getBorderRight());

cs = s.getRow(1).getCell(1).getCellStyle();
assertEquals(CellStyle.BORDER_DOTTED, cs.getBorderRight());
cs = s.getRow(1).getCell(1).getCellStyle();
assertEquals(CellStyle.BORDER_DOTTED, cs.getBorderRight());

cs = s.getRow(2).getCell(2).getCellStyle();
assertEquals(CellStyle.BORDER_DASH_DOT_DOT, cs.getBorderRight());
cs = s.getRow(2).getCell(2).getCellStyle();
assertEquals(CellStyle.BORDER_DASH_DOT_DOT, cs.getBorderRight());

cs = s.getRow(3).getCell(3).getCellStyle();
assertEquals(CellStyle.BORDER_DASHED, cs.getBorderRight());
cs = s.getRow(3).getCell(3).getCellStyle();
assertEquals(CellStyle.BORDER_DASHED, cs.getBorderRight());

cs = s.getRow(4).getCell(4).getCellStyle();
assertEquals(CellStyle.BORDER_THIN, cs.getBorderRight());
cs = s.getRow(4).getCell(4).getCellStyle();
assertEquals(CellStyle.BORDER_THIN, cs.getBorderRight());

cs = s.getRow(5).getCell(5).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT_DOT, cs.getBorderRight());
cs = s.getRow(5).getCell(5).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT_DOT, cs.getBorderRight());

cs = s.getRow(6).getCell(6).getCellStyle();
assertEquals(CellStyle.BORDER_SLANTED_DASH_DOT, cs.getBorderRight());
cs = s.getRow(6).getCell(6).getCellStyle();
assertEquals(CellStyle.BORDER_SLANTED_DASH_DOT, cs.getBorderRight());

cs = s.getRow(7).getCell(7).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT, cs.getBorderRight());
cs = s.getRow(7).getCell(7).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM_DASH_DOT, cs.getBorderRight());

cs = s.getRow(8).getCell(8).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM_DASHED, cs.getBorderRight());
cs = s.getRow(8).getCell(8).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM_DASHED, cs.getBorderRight());

cs = s.getRow(9).getCell(9).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM, cs.getBorderRight());
cs = s.getRow(9).getCell(9).getCellStyle();
assertEquals(CellStyle.BORDER_MEDIUM, cs.getBorderRight());

cs = s.getRow(10).getCell(10).getCellStyle();
assertEquals(CellStyle.BORDER_THICK, cs.getBorderRight());
cs = s.getRow(10).getCell(10).getCellStyle();
assertEquals(CellStyle.BORDER_THICK, cs.getBorderRight());

cs = s.getRow(11).getCell(11).getCellStyle();
assertEquals(CellStyle.BORDER_DOUBLE, cs.getBorderRight());
}

public void testBug54894() throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");

// Create a row and put some cells in it. Rows are 0 based.
HSSFRow row = sheet.createRow(1);

// Create a cell and put a value in it.
HSSFCell cell = row.createCell(1);
cell.setCellValue(4);

CellStyle def = cell.getCellStyle();

String filenameB = "C:\\temp\\54894B.xls";
FileOutputStream fileOut = new FileOutputStream(filenameB);
try {
wb.write(fileOut);
} finally {
fileOut.close();
}

// Style the cell with borders all around.
HSSFCellStyle style = wb.createCellStyle();
style.cloneStyleFrom(def);

String filenameM = "C:\\temp\\54894M.xls";
fileOut = new FileOutputStream(filenameM);
try {
wb.write(fileOut);
} finally {
fileOut.close();
}

style.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cell.setCellStyle(style);

String filenameM1 = "C:\\temp\\54894M1.xls";
fileOut = new FileOutputStream(filenameM1);
try {
wb.write(fileOut);
} finally {
fileOut.close();
}

// Write the output to a file
String filename = "C:\\temp\\54894.xls";
fileOut = new FileOutputStream(filename);
try {
wb.write(fileOut);
} finally {
fileOut.close();
}

/*Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filenameB});
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filenameM});
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filenameM1});
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", filename});*/

System.out.println("testfile M");
BiffViewer.main(new String[] {filenameM});
System.out.println("testfile M1");
BiffViewer.main(new String[] {filenameM1});
cs = s.getRow(11).getCell(11).getCellStyle();
assertEquals(CellStyle.BORDER_DOUBLE, cs.getBorderRight());
}

public void testShrinkToFit() {
@@ -515,7 +449,7 @@ public final class TestCellStyle extends TestCase {
public Throwable getException() {
return exception;
}
}
};
public void test56563() throws Throwable {
CellFormatBugExample threadA = new CellFormatBugExample("56563a.xls");

+ 14
- 147
src/testcases/org/apache/poi/hssf/usermodel/TestComment.java 查看文件

@@ -17,37 +17,20 @@
package org.apache.poi.hssf.usermodel;
import static org.junit.Assert.assertArrayEquals;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import junit.framework.TestCase;
import org.apache.poi.ddf.EscherSpRecord;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.model.CommentShape;
import org.apache.poi.hssf.model.HSSFTestModelHelper;
import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
import org.apache.poi.hssf.record.EscherAggregate;
import org.apache.poi.hssf.record.NoteRecord;
import org.apache.poi.hssf.record.ObjRecord;
import org.apache.poi.hssf.record.TextObjectRecord;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.hssf.record.*;
import java.io.*;
import java.util.Arrays;
/**
* @author Evgeniy Berlog
* @date 26.06.12
*/
@SuppressWarnings("deprecation")
public class TestComment extends TestCase {
public void testResultEqualsToAbstractShape() {
@@ -70,25 +53,25 @@ public class TestComment extends TestCase {
byte[] actual = comment.getEscherContainer().getChild(0).serialize();
assertEquals(expected.length, actual.length);
assertArrayEquals(expected, actual);
assertTrue(Arrays.equals(expected, actual));
expected = commentShape.getSpContainer().getChild(2).serialize();
actual = comment.getEscherContainer().getChild(2).serialize();
assertEquals(expected.length, actual.length);
assertArrayEquals(expected, actual);
assertTrue(Arrays.equals(expected, actual));
expected = commentShape.getSpContainer().getChild(3).serialize();
actual = comment.getEscherContainer().getChild(3).serialize();
assertEquals(expected.length, actual.length);
assertArrayEquals(expected, actual);
assertTrue(Arrays.equals(expected, actual));
expected = commentShape.getSpContainer().getChild(4).serialize();
actual = comment.getEscherContainer().getChild(4).serialize();
assertEquals(expected.length, actual.length);
assertArrayEquals(expected, actual);
assertTrue(Arrays.equals(expected, actual));
ObjRecord obj = comment.getObjRecord();
ObjRecord objShape = commentShape.getObjRecord();
@@ -105,7 +88,7 @@ public class TestComment extends TestCase {
actual = torShape.serialize();
assertEquals(expected.length, actual.length);
assertArrayEquals(expected, actual);
assertTrue(Arrays.equals(expected, actual));
NoteRecord note = comment.getNoteRecord();
NoteRecord noteShape = commentShape.getNoteRecord();
@@ -115,10 +98,7 @@ public class TestComment extends TestCase {
actual = noteShape.serialize();
assertEquals(expected.length, actual.length);
assertTrue(
"\nHad: " + Arrays.toString(actual) +
"\n Expected: " + Arrays.toString(expected),
Arrays.equals(expected, actual));
assertTrue(Arrays.equals(expected, actual));
}
public void testAddToExistingFile() {
@@ -260,7 +240,6 @@ public class TestComment extends TestCase {
assertEquals(agg.getTailRecords().size(), 1);
HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor());
assertNotNull(shape);
assertEquals(comment.getOptRecord().getEscherProperties().size(), 10);
}
@@ -281,12 +260,12 @@ public class TestComment extends TestCase {
assertEquals(comment.getShapeId(), 2024);
/*CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0);
assertEquals(2024, cod.getObjectId());
CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0);
assertEquals(cod.getObjectId(), 1000);
EscherSpRecord spRecord = (EscherSpRecord) comment.getEscherContainer().getChild(0);
assertEquals(spRecord.getShapeId(), 2024);
assertEquals(comment.getShapeId(), 2024);
assertEquals(2024, comment.getNoteRecord().getShapeId());*/
assertEquals(comment.getNoteRecord().getShapeId(), 1000);
}
public void testAttemptToSave2CommentsWithSameCoordinates(){
@@ -306,116 +285,4 @@ public class TestComment extends TestCase {
}
assertNotNull(err);
}
public void testBug56380InsertComments() throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
Drawing drawing = sheet.createDrawingPatriarch();
int noOfRows = 3000;
String comment = "c";
for(int i = 0; i < noOfRows; i++) {
Row row = sheet.createRow(i);
Cell cell = row.createCell(0);
insertComment(drawing, cell, comment + i);
}
// assert that the comments are created properly before writing
checkComments(sheet, noOfRows, comment);
System.out.println("Listing comments before write");
listComments(sheet.getDrawingPatriarch());
assertEquals(noOfRows, sheet.getDrawingPatriarch().getChildren().size());
// store in temp-file
File file = new File(System.getProperty("java.io.tmpdir") + File.separatorChar + "test_comments.xls");
FileOutputStream fs = new FileOutputStream(file);
try {
sheet.getWorkbook().write(fs);
} finally {
fs.close();
}
// save and recreate the workbook from the saved file
workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);
sheet = workbook.getSheetAt(0);
// recreate the workbook from the saved file
/*FileInputStream fi = new FileInputStream(file);
try {
sheet = new HSSFWorkbook(fi).getSheetAt(0);
} finally {
fi.close();
}*/
System.out.println("Listing comments after read");
listComments(sheet.getDrawingPatriarch());
assertEquals(noOfRows, sheet.getDrawingPatriarch().getChildren().size());
// store file after
file = new File(System.getProperty("java.io.tmpdir") + File.separatorChar + "test_comments_after.xls");
fs = new FileOutputStream(file);
try {
sheet.getWorkbook().write(fs);
} finally {
fs.close();
}
// assert that the comments are created properly after reading back in
//checkComments(sheet, noOfRows, comment);
}
private void listComments(HSSFShapeContainer container) {
for (Object object : container.getChildren()) {
HSSFShape shape = (HSSFShape) object;
if (shape instanceof HSSFShapeGroup) {
listComments((HSSFShapeContainer) shape);
continue;
}
if (shape instanceof HSSFComment) {
HSSFComment comment = (HSSFComment) shape;
System.out.println("Comment " + comment.getString().getString() + " at " + comment.getColumn() + "/" + comment.getRow());
}
}
}
private void checkComments(Sheet sheet, int noOfRows, String commentStr) {
for(int i = 0; i < noOfRows; i++) {
assertNotNull(sheet.getRow(i));
Cell cell = sheet.getRow(i).getCell(0);
assertNotNull(cell);
Comment comment = cell.getCellComment();
assertNotNull("Did not get a Cell Comment for row " + i, comment);
assertNotNull(comment.getString());
assertEquals(i, comment.getRow());
assertEquals(0,comment.getColumn());
assertEquals(commentStr + i, comment.getString().getString());
}
}
private void insertComment(Drawing drawing, Cell cell, String message) {
CreationHelper factory = cell.getSheet().getWorkbook().getCreationHelper();
ClientAnchor anchor = factory.createClientAnchor();
anchor.setCol1(cell.getColumnIndex());
anchor.setCol2(cell.getColumnIndex() + 1);
anchor.setRow1(cell.getRowIndex());
anchor.setRow2(cell.getRowIndex() + 1);
anchor.setDx1(100);
anchor.setDx2(100);
anchor.setDy1(100);
anchor.setDy2(100);
Comment comment = drawing.createCellComment(anchor);
RichTextString str = factory.createRichTextString(message);
comment.setString(str);
comment.setAuthor("fanfy");
cell.setCellComment(comment);
}
}

+ 6
- 73
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java 查看文件

@@ -17,7 +17,12 @@

package org.apache.poi.hssf.usermodel;

import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -50,13 +55,8 @@ import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.formula.ptg.Area3DPtg;
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellUtil;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.TempFile;
import org.junit.Test;
@@ -1070,71 +1070,4 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
private void expectName(HSSFWorkbook wb, String name, String expect) {
assertEquals(expect, wb.getName(name).getRefersToFormula());
}
@Test
public void test55747() throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
Sheet sheet =wb.createSheet("Test1");
Row row =sheet.createRow(0);
CellUtil.createCell(row, 0, "Hello world.");
row = sheet.createRow(1);
Cell cell = row.createCell(0);
cell.setCellType(Cell.CELL_TYPE_FORMULA);
cell.setCellFormula("IF(ISBLANK(A1),\" not blank a1\",CONCATENATE(A1,\" - %%s.\"))");
Cell cell2 = row.createCell(1);
cell2.setCellType(Cell.CELL_TYPE_FORMULA);
cell2.setCellFormula("CONCATENATE(A1,\" - %%s.\")");
Cell cell3 = row.createCell(2);
cell3.setCellType(Cell.CELL_TYPE_FORMULA);
cell3.setCellFormula("ISBLANK(A1)");

wb.setForceFormulaRecalculation(true);
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
for(int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) {
sheet = wb.getSheetAt(sheetNum);
for(Row r : sheet) {
for(Cell c : r) {
if(c.getCellType() == Cell.CELL_TYPE_FORMULA) {
evaluator.evaluateFormulaCell(c);
}
}
}
}

cell = row.getCell(0);
assertEquals(Cell.CELL_TYPE_FORMULA, cell.getCellType());
assertEquals("IF(ISBLANK(A1),\" not blank a1\",CONCATENATE(A1,\" - %%s.\"))", cell.getCellFormula());
assertEquals("Hello world. - %%s.", cell.getStringCellValue());
cell2 = row.getCell(1);
assertEquals(Cell.CELL_TYPE_FORMULA, cell2.getCellType());
assertEquals("CONCATENATE(A1,\" - %%s.\")", cell2.getCellFormula());
assertEquals("Hello world. - %%s.", cell2.getStringCellValue());

FileOutputStream stream = new FileOutputStream( "C:/temp/55747.xls");
try {
wb.write(stream);
} finally {
stream.close();
}
HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb);
Sheet sheetBack = wb.getSheetAt(0);
Row rowBack = sheetBack.getRow(1);
cell = rowBack.getCell(0);
assertEquals(Cell.CELL_TYPE_FORMULA, cell.getCellType());
assertEquals("IF(ISBLANK(A1),\" not blank a1\",CONCATENATE(A1,\" - %%s.\"))", cell.getCellFormula());
assertEquals("Hello world. - %%s.", cell.getStringCellValue());
cell2 = rowBack.getCell(1);
assertEquals(Cell.CELL_TYPE_FORMULA, cell2.getCellType());
assertEquals("CONCATENATE(A1,\" - %%s.\")", cell2.getCellFormula());
assertEquals("Hello world. - %%s.", cell2.getStringCellValue());
wbBack.close();
wb.close();
}
}

二進制
test-data/spreadsheet/SampleSS.xlsx 查看文件


Loading…
取消
儲存