📄 testworkbook.java
字号:
cell.setCellValue(LAST_NAME_VALUE); cell = sheet.getRow(( short ) 4).getCell(( short ) 2); cell.setCellValue(FIRST_NAME_VALUE); cell = sheet.getRow(( short ) 5).getCell(( short ) 2); cell.setCellValue(SSN_VALUE); File destination = File.createTempFile("EmployeeResult", ".xls"); FileOutputStream outstream = new FileOutputStream(destination); workbook.write(outstream); instream.close(); outstream.close(); instream = new FileInputStream(destination); workbook = new HSSFWorkbook(new POIFSFileSystem(instream)); sheet = workbook.getSheetAt(0); assertEquals(EMPLOYEE_INFORMATION, sheet.getRow(1).getCell(( short ) 1) .getStringCellValue()); assertEquals(LAST_NAME_VALUE, sheet.getRow(3).getCell(( short ) 2) .getStringCellValue()); assertEquals(FIRST_NAME_VALUE, sheet.getRow(4).getCell(( short ) 2) .getStringCellValue()); assertEquals(SSN_VALUE, sheet.getRow(5).getCell(( short ) 2) .getStringCellValue()); instream.close(); } /** * TEST NAME: Test Read Sheet with an RK number<P> * OBJECTIVE: Test that HSSF can read a simple spreadsheet with and RKRecord and correctly * identify the cell as numeric and convert it to a NumberRecord. <P> * SUCCESS: HSSF reads a sheet. HSSF returns that the cell is a numeric type cell. <P> * FAILURE: HSSF does not read a sheet or excepts. HSSF incorrectly indentifies the cell<P> * */ public void testReadSheetWithRK() throws IOException { String filename = System.getProperty("HSSF.testdata.path"); filename = filename + "/rk.xls"; // a.xls has a value on position (0,0) FileInputStream in = new FileInputStream(filename); POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook h = new HSSFWorkbook(fs); HSSFSheet s = h.getSheetAt(0); HSSFRow r = s.getRow(0); HSSFCell c = r.getCell(( short ) 0); int a = c.getCellType(); assertEquals(a, c.CELL_TYPE_NUMERIC); } /** * TEST NAME: Test Write/Modify Sheet Simple <P> * OBJECTIVE: Test that HSSF can create a simple spreadsheet with numeric and string values, * remove some rows, yet still have a valid file/data.<P> * SUCCESS: HSSF creates a sheet. Filesize matches a known good. HSSFSheet objects * Last row, first row is tested against the correct values (74,25).<P> * FAILURE: HSSF does not create a sheet or excepts. Filesize does not match the known good. * HSSFSheet last row or first row is incorrect. <P> * */ public void testWriteModifySheetMerged() throws IOException { File file = File.createTempFile("testWriteSheetMerged", ".xls"); FileOutputStream out = new FileOutputStream(file); FileInputStream in = null; HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet s = wb.createSheet(); HSSFRow r = null; HSSFCell c = null; for (short rownum = ( short ) 0; rownum < 100; rownum++) { r = s.createRow(rownum); // r.setRowNum(( short ) rownum); for (short cellnum = ( short ) 0; cellnum < 50; cellnum += 2) { c = r.createCell(cellnum); c.setCellValue(rownum * 10000 + cellnum + ((( double ) rownum / 1000) + (( double ) cellnum / 10000))); c = r.createCell(( short ) (cellnum + 1)); c.setCellValue("TEST"); } } s.addMergedRegion(new Region(( short ) 0, ( short ) 0, ( short ) 10, ( short ) 10)); s.addMergedRegion(new Region(( short ) 30, ( short ) 5, ( short ) 40, ( short ) 15)); wb.write(out); out.close(); sanityChecker.checkHSSFWorkbook(wb); in = new FileInputStream(file); wb = new HSSFWorkbook(new POIFSFileSystem(in)); s = wb.getSheetAt(0); Region r1 = s.getMergedRegionAt(0); Region r2 = s.getMergedRegionAt(1); in.close(); // System.out.println(file.length()); // assertEquals("FILE LENGTH == 87552",file.length(), 87552); // System.out.println(s.getLastRowNum()); assertEquals("REGION1 = 0,0,10,10", 0, new Region(( short ) 0, ( short ) 0, ( short ) 10, ( short ) 10).compareTo(r1)); assertEquals("REGION2 == 30,5,40,15", 0, new Region(( short ) 30, ( short ) 5, ( short ) 40, ( short ) 15).compareTo(r2)); } /** * Test the backup field gets set as expected. */ public void testBackupRecord() throws Exception { HSSFWorkbook wb = new HSSFWorkbook(); wb.createSheet(); Workbook workbook = wb.getWorkbook(); BackupRecord record = workbook.getBackupRecord(); assertEquals(0, record.getBackup()); wb.setBackupFlag(true); assertEquals(1, record.getBackup()); } /** * This tests is for bug [ #506658 ] Repeating output. * * We need to make sure only one LabelSSTRecord is produced. */ public void testRepeatingBug() throws Exception { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("Design Variants"); HSSFRow row = sheet.createRow(( short ) 2); HSSFCell cell = row.createCell(( short ) 1); cell.setCellValue("Class"); cell = row.createCell(( short ) 2); // workbook.write(new FileOutputStream("/a2.xls")); ValueRecordsAggregate valueAggregate = ( ValueRecordsAggregate ) sheet.getSheet() .findFirstRecordBySid(ValueRecordsAggregate.sid); int sstRecords = 0; Iterator iterator = valueAggregate.getIterator(); while (iterator.hasNext()) { if ((( Record ) iterator.next()).getSid() == LabelSSTRecord.sid) { sstRecords++; } } assertEquals(1, sstRecords); } public void testManyRows() throws Exception { String testName = "TestManyRows"; File file = File.createTempFile(testName, ".xls"); FileOutputStream out = new FileOutputStream(file); HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); HSSFRow row = null; HSSFCell cell = null; int i, j; for ( i = 0, j = 32771; j > 0; i++, j-- ) { row = sheet.createRow(i); cell = row.createCell((short) 0); cell.setCellValue(i); } workbook.write(out); out.close(); sanityChecker.checkHSSFWorkbook(workbook); assertEquals("LAST ROW == 32770", 32770, sheet.getLastRowNum()); double lastVal = cell.getNumericCellValue(); FileInputStream in = new FileInputStream(file); POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet s = wb.getSheetAt(0); row = s.getRow(32770); cell = row.getCell(( short ) 0); assertEquals("Value from last row == 32770", lastVal, cell.getNumericCellValue(), 0); assertEquals("LAST ROW == 32770", 32770, s.getLastRowNum()); in.close(); file.deleteOnExit(); } /** * Generate a file to visually/programmatically verify repeating rows and cols made it */ public void testRepeatingColsRows() throws IOException { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("Test Print Titles"); String sheetName = workbook.getSheetName(0); HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell((short)1); cell.setCellValue("hi"); workbook.setRepeatingRowsAndColumns(0, 0, 1, 0, 0); File file = File.createTempFile("testPrintTitles",".xls"); FileOutputStream fileOut = new FileOutputStream(file); workbook.write(fileOut); fileOut.close(); assertTrue("file exists",file.exists()); } public static void main(String [] ignored_args) { String filename = System.getProperty("HSSF.testdata.path"); // assume this is relative to basedir if (filename == null) { System.setProperty( "HSSF.testdata.path", "src/testcases/org/apache/poi/hssf/data"); } System.out .println("Testing org.apache.poi.hssf.usermodel.HSSFWorkbook"); junit.textui.TestRunner.run(TestWorkbook.class); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -