testhssfsheet.java

来自「EXCEL read and write」· Java 代码 · 共 914 行 · 第 1/3 页

JAVA
914
字号
        assertFalse(sheetPM.getPrintSetup().getLandscape());        assertTrue(sheetLS.getPrintSetup().getLandscape());        assertEquals(1, sheetL.getPrintSetup().getCopies());        assertEquals(3, sheetPM.getPrintSetup().getCopies());        assertEquals(1, sheetLS.getPrintSetup().getCopies());    }    public void testGroupRows() {        HSSFWorkbook workbook = new HSSFWorkbook();        HSSFSheet s = workbook.createSheet();        HSSFRow r1 = s.createRow(0);        HSSFRow r2 = s.createRow(1);        HSSFRow r3 = s.createRow(2);        HSSFRow r4 = s.createRow(3);        HSSFRow r5 = s.createRow(4);        assertEquals(0, r1.getOutlineLevel());        assertEquals(0, r2.getOutlineLevel());        assertEquals(0, r3.getOutlineLevel());        assertEquals(0, r4.getOutlineLevel());        assertEquals(0, r5.getOutlineLevel());        s.groupRow(2,3);        assertEquals(0, r1.getOutlineLevel());        assertEquals(0, r2.getOutlineLevel());        assertEquals(1, r3.getOutlineLevel());        assertEquals(1, r4.getOutlineLevel());        assertEquals(0, r5.getOutlineLevel());        // Save and re-open        workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);        s = workbook.getSheetAt(0);        r1 = s.getRow(0);        r2 = s.getRow(1);        r3 = s.getRow(2);        r4 = s.getRow(3);        r5 = s.getRow(4);        assertEquals(0, r1.getOutlineLevel());        assertEquals(0, r2.getOutlineLevel());        assertEquals(1, r3.getOutlineLevel());        assertEquals(1, r4.getOutlineLevel());        assertEquals(0, r5.getOutlineLevel());    }    public void testGroupRowsExisting() {        HSSFWorkbook workbook = openSample("NoGutsRecords.xls");        HSSFSheet s = workbook.getSheetAt(0);        HSSFRow r1 = s.getRow(0);        HSSFRow r2 = s.getRow(1);        HSSFRow r3 = s.getRow(2);        HSSFRow r4 = s.getRow(3);        HSSFRow r5 = s.getRow(4);        HSSFRow r6 = s.getRow(5);        assertEquals(0, r1.getOutlineLevel());        assertEquals(0, r2.getOutlineLevel());        assertEquals(0, r3.getOutlineLevel());        assertEquals(0, r4.getOutlineLevel());        assertEquals(0, r5.getOutlineLevel());        assertEquals(0, r6.getOutlineLevel());        // This used to complain about lacking guts records        s.groupRow(2, 4);        assertEquals(0, r1.getOutlineLevel());        assertEquals(0, r2.getOutlineLevel());        assertEquals(1, r3.getOutlineLevel());        assertEquals(1, r4.getOutlineLevel());        assertEquals(1, r5.getOutlineLevel());        assertEquals(0, r6.getOutlineLevel());        // Save and re-open        try {            workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);        } catch (OutOfMemoryError e) {            throw new AssertionFailedError("Identified bug 39903");        }        s = workbook.getSheetAt(0);        r1 = s.getRow(0);        r2 = s.getRow(1);        r3 = s.getRow(2);        r4 = s.getRow(3);        r5 = s.getRow(4);        r6 = s.getRow(5);        assertEquals(0, r1.getOutlineLevel());        assertEquals(0, r2.getOutlineLevel());        assertEquals(1, r3.getOutlineLevel());        assertEquals(1, r4.getOutlineLevel());        assertEquals(1, r5.getOutlineLevel());        assertEquals(0, r6.getOutlineLevel());    }    public void testGetDrawings() {        HSSFWorkbook wb1c = openSample("WithChart.xls");        HSSFWorkbook wb2c = openSample("WithTwoCharts.xls");        // 1 chart sheet -> data on 1st, chart on 2nd        assertNotNull(wb1c.getSheetAt(0).getDrawingPatriarch());        assertNotNull(wb1c.getSheetAt(1).getDrawingPatriarch());        assertFalse(wb1c.getSheetAt(0).getDrawingPatriarch().containsChart());        assertTrue(wb1c.getSheetAt(1).getDrawingPatriarch().containsChart());        // 2 chart sheet -> data on 1st, chart on 2nd+3rd        assertNotNull(wb2c.getSheetAt(0).getDrawingPatriarch());        assertNotNull(wb2c.getSheetAt(1).getDrawingPatriarch());        assertNotNull(wb2c.getSheetAt(2).getDrawingPatriarch());        assertFalse(wb2c.getSheetAt(0).getDrawingPatriarch().containsChart());        assertTrue(wb2c.getSheetAt(1).getDrawingPatriarch().containsChart());        assertTrue(wb2c.getSheetAt(2).getDrawingPatriarch().containsChart());    }    /**     * Test that the ProtectRecord is included when creating or cloning a sheet     */    public void testProtect() {        HSSFWorkbook workbook = new HSSFWorkbook();        HSSFSheet hssfSheet = workbook.createSheet();        Sheet sheet = hssfSheet.getSheet();        ProtectRecord protect = sheet.getProtect();        assertFalse(protect.getProtect());        // This will tell us that cloneSheet, and by extension,        // the list forms of createSheet leave us with an accessible        // ProtectRecord.        hssfSheet.protectSheet("secret");        Sheet cloned = sheet.cloneSheet();        assertNotNull(cloned.getProtect());        assertTrue(hssfSheet.getProtect());    }    public void testProtectSheet() {        short expected = (short)0xfef1;        HSSFWorkbook wb = new HSSFWorkbook();        HSSFSheet s = wb.createSheet();        s.protectSheet("abcdefghij");        Sheet sheet = s.getSheet();        ProtectRecord protect = sheet.getProtect();        PasswordRecord pass = sheet.getPassword();        assertTrue("protection should be on",protect.getProtect());        assertTrue("object protection should be on",sheet.isProtected()[1]);        assertTrue("scenario protection should be on",sheet.isProtected()[2]);        assertEquals("well known value for top secret hash should be "+Integer.toHexString(expected).substring(4),expected,pass.getPassword());    }    public void testZoom() {        HSSFWorkbook wb = new HSSFWorkbook();        HSSFSheet sheet = wb.createSheet();        assertEquals(-1, sheet.getSheet().findFirstRecordLocBySid(SCLRecord.sid));        sheet.setZoom(3,4);        assertTrue(sheet.getSheet().findFirstRecordLocBySid(SCLRecord.sid) > 0);        SCLRecord sclRecord = (SCLRecord) sheet.getSheet().findFirstRecordBySid(SCLRecord.sid);        assertEquals(3, sclRecord.getNumerator());        assertEquals(4, sclRecord.getDenominator());        int sclLoc = sheet.getSheet().findFirstRecordLocBySid(SCLRecord.sid);        int window2Loc = sheet.getSheet().findFirstRecordLocBySid(WindowTwoRecord.sid);        assertTrue(sclLoc == window2Loc + 1);    }    /**     * When removing one merged region, it would break     *     */    public void testRemoveMerged() {        HSSFWorkbook wb = new HSSFWorkbook();        HSSFSheet sheet = wb.createSheet();        CellRangeAddress region = new CellRangeAddress(0, 1, 0, 1);        sheet.addMergedRegion(region);        region = new CellRangeAddress(1, 2, 0, 1);        sheet.addMergedRegion(region);        sheet.removeMergedRegion(0);        region = sheet.getMergedRegion(0);        assertEquals("Left over region should be starting at row 1", 1, region.getFirstRow());        sheet.removeMergedRegion(0);        assertEquals("there should be no merged regions left!", 0, sheet.getNumMergedRegions());        //an, add, remove, get(0) would null pointer        sheet.addMergedRegion(region);        assertEquals("there should now be one merged region!", 1, sheet.getNumMergedRegions());        sheet.removeMergedRegion(0);        assertEquals("there should now be zero merged regions!", 0, sheet.getNumMergedRegions());        //add it again!        region.setLastRow(4);        sheet.addMergedRegion(region);        assertEquals("there should now be one merged region!", 1, sheet.getNumMergedRegions());        //should exist now!        assertTrue("there isn't more than one merged region in there", 1 <= sheet.getNumMergedRegions());        region = sheet.getMergedRegion(0);        assertEquals("the merged row to doesnt match the one we put in ", 4, region.getLastRow());    }    public void testShiftMerged() {        HSSFWorkbook wb = new HSSFWorkbook();        HSSFSheet sheet = wb.createSheet();        HSSFRow row = sheet.createRow(0);        HSSFCell cell = row.createCell(0);        cell.setCellValue(new HSSFRichTextString("first row, first cell"));        row = sheet.createRow(1);        cell = row.createCell(1);        cell.setCellValue(new HSSFRichTextString("second row, second cell"));        CellRangeAddress region = new CellRangeAddress(1, 1, 0, 1);        sheet.addMergedRegion(region);        sheet.shiftRows(1, 1, 1);        region = sheet.getMergedRegion(0);        assertEquals("Merged region not moved over to row 2", 2, region.getFirstRow());    }    /**     * Tests the display of gridlines, formulas, and rowcolheadings.     * @author Shawn Laubach (slaubach at apache dot org)     */    public void testDisplayOptions() {        HSSFWorkbook wb = new HSSFWorkbook();        HSSFSheet sheet = wb.createSheet();        wb = HSSFTestDataSamples.writeOutAndReadBack(wb);        sheet = wb.getSheetAt(0);        assertEquals(sheet.isDisplayGridlines(), true);        assertEquals(sheet.isDisplayRowColHeadings(), true);        assertEquals(sheet.isDisplayFormulas(), false);        sheet.setDisplayGridlines(false);        sheet.setDisplayRowColHeadings(false);        sheet.setDisplayFormulas(true);        wb = HSSFTestDataSamples.writeOutAndReadBack(wb);        sheet = wb.getSheetAt(0);        assertEquals(sheet.isDisplayGridlines(), false);        assertEquals(sheet.isDisplayRowColHeadings(), false);        assertEquals(sheet.isDisplayFormulas(), true);    }    /**     * Make sure the excel file loads work     *     */    public void testPageBreakFiles() {        HSSFWorkbook wb = openSample("SimpleWithPageBreaks.xls");        HSSFSheet sheet = wb.getSheetAt(0);        assertNotNull(sheet);        assertEquals("1 row page break", 1, sheet.getRowBreaks().length);        assertEquals("1 column page break", 1, sheet.getColumnBreaks().length);        assertTrue("No row page break", sheet.isRowBroken(22));        assertTrue("No column page break", sheet.isColumnBroken((short)4));        sheet.setRowBreak(10);        sheet.setColumnBreak((short)13);        assertEquals("row breaks number", 2, sheet.getRowBreaks().length);        assertEquals("column breaks number", 2, sheet.getColumnBreaks().length);        wb = HSSFTestDataSamples.writeOutAndReadBack(wb);        sheet = wb.getSheetAt(0);        assertTrue("No row page break", sheet.isRowBroken(22));        assertTrue("No column page break", sheet.isColumnBroken((short)4));        assertEquals("row breaks number", 2, sheet.getRowBreaks().length);        assertEquals("column breaks number", 2, sheet.getColumnBreaks().length);    }    public void testDBCSName () {        HSSFWorkbook wb = openSample("DBCSSheetName.xls");        wb.getSheetAt(1);        assertEquals ("DBCS Sheet Name 2", wb.getSheetName(1),"\u090f\u0915" );        assertEquals("DBCS Sheet Name 1", wb.getSheetName(0),"\u091c\u093e");    }    /**     * Testing newly added method that exposes the WINDOW2.toprow     * parameter to allow setting the toprow in the visible view     * of the sheet when it is first opened.     */    public void testTopRow() {        HSSFWorkbook wb = openSample("SimpleWithPageBreaks.xls");        HSSFSheet sheet = wb.getSheetAt(0);        assertNotNull(sheet);        short toprow = (short) 100;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?