testmissingrecordawarehssflistener.java

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

JAVA
426
字号
		assertEquals(0, lrs[0].getRow());				assertEquals(3, lrs[1].getLastColumnNumber());		assertEquals(1, lrs[1].getRow());				assertEquals(5, lrs[2].getLastColumnNumber());		assertEquals(2, lrs[2].getRow());				for(int i=3; i<=19; i++) {			assertEquals(-1, lrs[i].getLastColumnNumber());			assertEquals(i, lrs[i].getRow());		}				assertEquals(4, lrs[20].getLastColumnNumber());		assertEquals(20, lrs[20].getRow());				assertEquals(6, lrs[21].getLastColumnNumber());		assertEquals(21, lrs[21].getRow());				assertEquals(11, lrs[22].getLastColumnNumber());		assertEquals(22, lrs[22].getRow());	}			public void testMissingCellRecords() {		openNormal();				// Find the cell at 0,0		int cell00 = -1;		for(int i=0; i<r.length; i++) {			if(r[i] instanceof LabelSSTRecord) {				LabelSSTRecord lr = (LabelSSTRecord)r[i];				if(lr.getRow() == 0 && lr.getColumn() == 0) { cell00 = i; }			}		}		assertTrue(cell00 > -1);				// We have rows 0, 1, 2, 20 and 21		// Row 0 has 1 entry, 0		// Row 1 has 4 entries, 0+3		// Row 2 has 6 entries, 0+5		// Row 20 has 5 entries, 0-5		// Row 21 has 7 entries, 0+1+3+5+6		// Row 22 has 12 entries, 0+3+4+11				// Row 0		assertFalse(r[cell00+0] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+1] instanceof MissingCellDummyRecord);				// Row 1		assertFalse(r[cell00+2] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+3] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+4] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+5] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+6] instanceof MissingCellDummyRecord);				// Row 2		assertFalse(r[cell00+7] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+8] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+9] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+10] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+11] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+12] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+13] instanceof MissingCellDummyRecord);				// Row 3-19		assertFalse(r[cell00+14] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+15] instanceof MissingCellDummyRecord);				// Row 20		assertFalse(r[cell00+31] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+32] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+33] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+34] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+35] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+36] instanceof MissingCellDummyRecord);				// Row 21		assertFalse(r[cell00+37] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+38] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+39] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+40] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+41] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+42] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+43] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+44] instanceof MissingCellDummyRecord);				// Row 22		assertFalse(r[cell00+45] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+46] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+47] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+48] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+49] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+50] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+51] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+52] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+53] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+54] instanceof MissingCellDummyRecord);		assertTrue(r[cell00+55] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+56] instanceof MissingCellDummyRecord);		assertFalse(r[cell00+57] instanceof MissingCellDummyRecord);				// Check some numbers		MissingCellDummyRecord mc;				mc = (MissingCellDummyRecord)r[cell00+3];		assertEquals(1, mc.getRow());		assertEquals(1, mc.getColumn());		mc = (MissingCellDummyRecord)r[cell00+4];		assertEquals(1, mc.getRow());		assertEquals(2, mc.getColumn());				mc = (MissingCellDummyRecord)r[cell00+8];		assertEquals(2, mc.getRow());		assertEquals(1, mc.getColumn());		mc = (MissingCellDummyRecord)r[cell00+9];		assertEquals(2, mc.getRow());		assertEquals(2, mc.getColumn());				mc = (MissingCellDummyRecord)r[cell00+55];		assertEquals(22, mc.getRow());		assertEquals(10, mc.getColumn());	}		// Make sure we don't put in any extra new lines	//  that aren't already there	public void testNoExtraNewLines() {		// Load a different file		// This file has has something in lines 1-33		readRecords("MRExtraLines.xls");				int rowCount=0;		for(int i=0; i<r.length; i++) {			if(r[i] instanceof LastCellOfRowDummyRecord) {				LastCellOfRowDummyRecord eor = (LastCellOfRowDummyRecord) r[i];				assertEquals(rowCount, eor.getRow());				rowCount++;			}		}		// Check we got the 33 rows		assertEquals(33, rowCount);	}	private static final class MockHSSFListener implements HSSFListener {		public MockHSSFListener() {}		private final List _records = new ArrayList();		private boolean logToStdOut = false;		public void processRecord(Record record) {			_records.add(record);						if(record instanceof MissingRowDummyRecord) {				MissingRowDummyRecord mr = (MissingRowDummyRecord)record;				log("Got dummy row " + mr.getRowNumber());			}			if(record instanceof MissingCellDummyRecord) {				MissingCellDummyRecord mc = (MissingCellDummyRecord)record;				log("Got dummy cell " + mc.getRow() + " " + mc.getColumn());			}			if(record instanceof LastCellOfRowDummyRecord) {				LastCellOfRowDummyRecord lc = (LastCellOfRowDummyRecord)record;				log("Got end-of row, row was " + lc.getRow() + ", last column was " + lc.getLastColumnNumber());			}						if(record instanceof BOFRecord) {				BOFRecord r = (BOFRecord)record;				if(r.getType() == BOFRecord.TYPE_WORKSHEET) {					log("On new sheet");				}			}			if(record instanceof RowRecord) {				RowRecord rr = (RowRecord)record;				log("Starting row #" + rr.getRowNumber());			}		}		private void log(String msg) {			if(logToStdOut) {				System.out.println(msg);			}		}		public Record[] getRecords() {			Record[] result = new Record[_records.size()];			_records.toArray(result);			return result;		}	}		/**	 * Make sure that the presence of shared formulas does not cause extra 	 * end-of-row records.	 */	public void testEndOfRow_bug45672() {		readRecords("ex45672.xls");		Record[] rr = r;		int eorCount=0;		int sfrCount=0;		for (int i = 0; i < rr.length; i++) {			Record record = rr[i];			if (record instanceof SharedFormulaRecord) {				sfrCount++;			}			if (record instanceof LastCellOfRowDummyRecord) {				eorCount++;			}		}		if (eorCount == 2) {			throw new AssertionFailedError("Identified bug 45672");		}		assertEquals(1, eorCount);		assertEquals(1, sfrCount);	}}

⌨️ 快捷键说明

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