📄 sheettest.java
字号:
package org.apache.poi.hssf.model;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List;import junit.framework.TestCase;import org.apache.poi.hssf.record.ColumnInfoRecord;import org.apache.poi.hssf.record.MergeCellsRecord;import org.apache.poi.hssf.record.RowRecord;import org.apache.poi.hssf.record.StringRecord;/** * @author Tony Poppleton */public class SheetTest extends TestCase{ /** * Constructor for SheetTest. * @param arg0 */ public SheetTest(String arg0) { super(arg0); } public void testAddMergedRegion() { Sheet sheet = Sheet.createSheet(); int regionsToAdd = 4096; int startRecords = sheet.getRecords().size(); //simple test that adds a load of regions for (int n = 0; n < regionsToAdd; n++) { int index = sheet.addMergedRegion(0, (short) 0, 1, (short) 1); assertTrue("Merged region index expected to be " + n + " got " + index, index == n); } //test all the regions were indeed added assertTrue(sheet.getNumMergedRegions() == regionsToAdd); //test that the regions were spread out over the appropriate number of records int recordsAdded = sheet.getRecords().size() - startRecords; int recordsExpected = regionsToAdd/1027; if ((regionsToAdd % 1027) != 0) recordsExpected++; assertTrue("The " + regionsToAdd + " merged regions should have been spread out over " + recordsExpected + " records, not " + recordsAdded, recordsAdded == recordsExpected); } public void testRemoveMergedRegion() { Sheet sheet = Sheet.createSheet(); int regionsToAdd = 4096; for (int n = 0; n < regionsToAdd; n++) sheet.addMergedRegion(0, (short) 0, 1, (short) 1); int records = sheet.getRecords().size(); //remove a third from the beginning for (int n = 0; n < regionsToAdd/3; n++) { sheet.removeMergedRegion(0); //assert they have been deleted assertTrue("Num of regions should be " + (regionsToAdd - n - 1) + " not " + sheet.getNumMergedRegions(), sheet.getNumMergedRegions() == regionsToAdd - n - 1); } //assert any record removing was done int recordsRemoved = (regionsToAdd/3)/1027; //doesn't work for particular values of regionsToAdd assertTrue("Expected " + recordsRemoved + " record to be removed from the starting " + records + ". Currently there are " + sheet.getRecords().size() + " records", records - sheet.getRecords().size() == recordsRemoved); } /** * Bug: 22922 (Reported by Xuemin Guan) * <p> * Remove mergedregion fails when a sheet loses records after an initial CreateSheet * fills up the records. * */ public void testMovingMergedRegion() { List records = new ArrayList(); MergeCellsRecord merged = new MergeCellsRecord(); merged.addArea(0, (short)0, 1, (short)2); records.add(new RowRecord()); records.add(new RowRecord()); records.add(new RowRecord()); records.add(merged); Sheet sheet = Sheet.createSheet(records, 0); sheet.records.remove(0); //stub object to throw off list INDEX operations sheet.removeMergedRegion(0); assertEquals("Should be no more merged regions", 0, sheet.getNumMergedRegions()); } public void testGetMergedRegionAt() { //TODO } public void testGetNumMergedRegions() { //TODO } public void testGetCellWidth() { try{ Sheet sheet = Sheet.createSheet(); ColumnInfoRecord nci = ( ColumnInfoRecord ) sheet.createColInfo(); //prepare test model nci.setFirstColumn((short)5); nci.setLastColumn((short)10); nci.setColumnWidth((short)100); Field f = Sheet.class.getDeclaredField("columnSizes"); f.setAccessible(true); List columnSizes = new ArrayList(); f.set(sheet,columnSizes); columnSizes.add(nci); sheet.records.add(1 + sheet.dimsloc, nci); sheet.dimsloc++; assertEquals((short)100,sheet.getColumnWidth((short)5)); assertEquals((short)100,sheet.getColumnWidth((short)6)); assertEquals((short)100,sheet.getColumnWidth((short)7)); assertEquals((short)100,sheet.getColumnWidth((short)8)); assertEquals((short)100,sheet.getColumnWidth((short)9)); assertEquals((short)100,sheet.getColumnWidth((short)10)); sheet.setColumnWidth((short)6,(short)200); assertEquals((short)100,sheet.getColumnWidth((short)5)); assertEquals((short)200,sheet.getColumnWidth((short)6)); assertEquals((short)100,sheet.getColumnWidth((short)7)); assertEquals((short)100,sheet.getColumnWidth((short)8)); assertEquals((short)100,sheet.getColumnWidth((short)9)); assertEquals((short)100,sheet.getColumnWidth((short)10)); } catch(Exception e){e.printStackTrace();fail(e.getMessage());} } /** * Makes sure all rows registered for this sheet are aggregated, they were being skipped * */ public void testRowAggregation() { List records = new ArrayList(); RowRecord row = new RowRecord(); row.setRowNumber(0); records.add(row); row = new RowRecord(); row.setRowNumber(1); records.add(row); records.add(new StringRecord()); row = new RowRecord(); row.setRowNumber(2); records.add(row); Sheet sheet = Sheet.createSheet(records, 0); assertNotNull("Row [2] was skipped", sheet.getRow(2)); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -