testbugs.java
来自「EXCEL read and write」· Java 代码 · 共 1,523 行 · 第 1/4 页
JAVA
1,523 行
confirmSameCellText(a1, ra2); confirmSameCellText(b1, rb2); confirmSameCellText(c1, rc2); confirmSameCellText(d1, rd2); } private static void confirmSameCellText(HSSFCell a, HSSFCell b) { assertEquals(a.getRichStringCellValue().getString(), b.getRichStringCellValue().getString()); } private static String unicodeString(HSSFCell cell) { String ss = cell.getRichStringCellValue().getString(); char s[] = ss.toCharArray(); StringBuffer sb = new StringBuffer(); for (int x=0;x<s.length;x++) { sb.append("\\u").append(Integer.toHexString(s[x])); } return sb.toString(); } /** Error in opening wb*/ public void test32822() { openSample("32822.xls"); } /**fail to read wb with chart */ public void test15573() { openSample("15573.xls"); } /**names and macros */ public void test27852() { HSSFWorkbook wb = openSample("27852.xls"); for(int i = 0 ; i < wb.getNumberOfNames(); i++){ HSSFName name = wb.getNameAt(i); name.getNameName(); if (name.isFunctionName()) { continue; } name.getReference(); } } public void test28031() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); wb.setSheetName(0, "Sheet1"); HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell(0); String formulaText = "IF(ROUND(A2*B2*C2,2)>ROUND(B2*D2,2),ROUND(A2*B2*C2,2),ROUND(B2*D2,2))"; cell.setCellFormula(formulaText); assertEquals(formulaText, cell.getCellFormula()); writeTestOutputFileForViewing(wb, "output28031.xls"); } public void test33082() { openSample("33082.xls"); } public void test34775() { try { openSample("34775.xls"); } catch (NullPointerException e) { throw new AssertionFailedError("identified bug 34775"); } } /** Error when reading then writing ArrayValues in NameRecord's*/ public void test37630() { HSSFWorkbook wb = openSample("37630.xls"); writeOutAndReadBack(wb); } /** * Bug 25183: org.apache.poi.hssf.usermodel.HSSFSheet.setPropertiesFromSheet */ public void test25183() { HSSFWorkbook wb = openSample("25183.xls"); writeOutAndReadBack(wb); } /** * Bug 26100: 128-character message in IF statement cell causes HSSFWorkbook open failure */ public void test26100() { HSSFWorkbook wb = openSample("26100.xls"); writeOutAndReadBack(wb); } /** * Bug 27933: Unable to use a template (xls) file containing a wmf graphic */ public void test27933() { HSSFWorkbook wb = openSample("27933.xls"); writeOutAndReadBack(wb); } /** * Bug 29206: NPE on HSSFSheet.getRow for blank rows */ public void test29206() { //the first check with blank workbook HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); for(int i = 1; i < 400; i++) { HSSFRow row = sheet.getRow(i); if(row != null) { row.getCell(0); } } //now check on an existing xls file wb = openSample("Simple.xls"); for(int i = 1; i < 400; i++) { HSSFRow row = sheet.getRow(i); if(row != null) { row.getCell(0); } } } /** * Bug 29675: POI 2.5 final corrupts output when starting workbook has a graphic */ public void test29675() { HSSFWorkbook wb = openSample("29675.xls"); writeOutAndReadBack(wb); } /** * Bug 29942: Importing Excel files that have been created by Open Office on Linux */ public void test29942() { HSSFWorkbook wb = openSample("29942.xls"); HSSFSheet sheet = wb.getSheetAt(0); int count = 0; for (int i = sheet.getFirstRowNum(); i <= sheet.getLastRowNum(); i++) { HSSFRow row = sheet.getRow(i); if (row != null) { HSSFCell cell = row .getCell(0); assertEquals(HSSFCell.CELL_TYPE_STRING, cell.getCellType()); count++; } } assertEquals(85, count); //should read 85 rows writeOutAndReadBack(wb); } /** * Bug 29982: Unable to read spreadsheet when dropdown list cell is selected - * Unable to construct record instance */ public void test29982() { HSSFWorkbook wb = openSample("29982.xls"); writeOutAndReadBack(wb); } /** * Bug 30540: HSSFSheet.setRowBreak throws NullPointerException */ public void test30540() { HSSFWorkbook wb = openSample("30540.xls"); HSSFSheet s = wb.getSheetAt(0); s.setRowBreak(1); writeOutAndReadBack(wb); } /** * Bug 31749: {Need help urgently}[This is critical] workbook.write() corrupts the file......? */ public void test31749() { HSSFWorkbook wb = openSample("31749.xls"); writeOutAndReadBack(wb); } /** * Bug 31979: {urgent help needed .....}poi library does not support form objects properly. */ public void test31979() { HSSFWorkbook wb = openSample("31979.xls"); writeOutAndReadBack(wb); } /** * Bug 35564: HSSFCell.java: NullPtrExc in isGridsPrinted() and getProtect() * when HSSFWorkbook is created from file */ public void test35564() { HSSFWorkbook wb = openSample("35564.xls"); HSSFSheet sheet = wb.getSheetAt( 0 ); assertEquals(false, sheet.isGridsPrinted()); assertEquals(false, sheet.getProtect()); writeOutAndReadBack(wb); } /** * Bug 35565: HSSFCell.java: NullPtrExc in getColumnBreaks() when HSSFWorkbook is created from file */ public void test35565() { HSSFWorkbook wb = openSample("35565.xls"); HSSFSheet sheet = wb.getSheetAt( 0 ); assertNotNull(sheet); writeOutAndReadBack(wb); } /** * Bug 37376: Cannot open the saved Excel file if checkbox controls exceed certain limit */ public void test37376() { HSSFWorkbook wb = openSample("37376.xls"); writeOutAndReadBack(wb); } /** * Bug 40285: CellIterator Skips First Column */ public void test40285() { HSSFWorkbook wb = openSample("40285.xls"); HSSFSheet sheet = wb.getSheetAt( 0 ); int rownum = 0; for (Iterator it = sheet.rowIterator(); it.hasNext(); rownum++) { HSSFRow row = (HSSFRow)it.next(); assertEquals(rownum, row.getRowNum()); int cellNum = 0; for (Iterator it2 = row.cellIterator(); it2.hasNext(); cellNum++) { HSSFCell cell = (HSSFCell)it2.next(); assertEquals(cellNum, cell.getColumnIndex()); } } } /** * Bug 40296: HSSFCell.setCellFormula throws * ClassCastException if cell is created using HSSFRow.createCell(short column, int type) */ public void test40296() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFWorkbook workBook = new HSSFWorkbook(); HSSFSheet workSheet = workBook.createSheet("Sheet1"); HSSFCell cell; HSSFRow row = workSheet.createRow(0); cell = row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(1.0); cell = row.createCell(1, HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(2.0); cell = row.createCell(2, HSSFCell.CELL_TYPE_FORMULA); cell.setCellFormula("SUM(A1:B1)"); writeOutAndReadBack(wb); } /** * Test bug 38266: NPE when adding a row break * * User's diagnosis: * 1. Manually (i.e., not using POI) create an Excel Workbook, making sure it * contains a sheet that doesn't have any row breaks * 2. Using POI, create a new HSSFWorkbook from the template in step #1 * 3. Try adding a row break (via sheet.setRowBreak()) to the sheet mentioned in step #1 * 4. Get a NullPointerException */ public void test38266() { String[] files = {"Simple.xls", "SimpleMultiCell.xls", "duprich1.xls"}; for (int i = 0; i < files.length; i++) { HSSFWorkbook wb = openSample(files[i]); HSSFSheet sheet = wb.getSheetAt( 0 ); int[] breaks = sheet.getRowBreaks(); assertEquals(0, breaks.length); //add 3 row breaks for (int j = 1; j <= 3; j++) { sheet.setRowBreak(j*20); } } } public void test40738() { HSSFWorkbook wb = openSample("SimpleWithAutofilter.xls"); writeOutAndReadBack(wb); } /** * Bug 44200: Sheet not cloneable when Note added to excel cell */ public void test44200() { HSSFWorkbook wb = openSample("44200.xls"); wb.cloneSheet(0); writeOutAndReadBack(wb); } /** * Bug 44201: Sheet not cloneable when validation added to excel cell */ public void test44201() { HSSFWorkbook wb = openSample("44201.xls"); writeOutAndReadBack(wb); } /** * Bug 37684 : Unhandled Continue Record Error */ public void test37684 () { HSSFWorkbook wb = openSample("37684-1.xls"); writeOutAndReadBack(wb); wb = openSample("37684-2.xls"); writeOutAndReadBack(wb); } /** * Bug 41139: Constructing HSSFWorkbook is failed,threw threw ArrayIndexOutOfBoundsException for creating UnknownRecord */ public void test41139() { HSSFWorkbook wb = openSample("41139.xls"); writeOutAndReadBack(wb); } /** * Bug 41546: Constructing HSSFWorkbook is failed, * Unknown Ptg in Formula: 0x1a (26) */ public void test41546() { HSSFWorkbook wb = openSample("41546.xls"); assertEquals(1, wb.getNumberOfSheets()); wb = writeOutAndReadBack(wb); assertEquals(1, wb.getNumberOfSheets()); } /** * Bug 42564: Some files from Access were giving a RecordFormatException * when reading the BOFRecord */ public void test42564() { HSSFWorkbook wb = openSample("42564.xls"); writeOutAndReadBack(wb); } /** * Bug 42564: Some files from Access also have issues * with the NameRecord, once you get past the BOFRecord * issue. */ public void test42564Alt() { HSSFWorkbook wb = openSample("42564-2.xls"); writeOutAndReadBack(wb); } /** * Bug 42618: RecordFormatException reading a file containing * =CHOOSE(2,A2,A3,A4) */ public void test42618() { HSSFWorkbook wb = openSample("SimpleWithChoose.xls"); wb = writeOutAndReadBack(wb); // Check we detect the string properly too HSSFSheet s = wb.getSheetAt(0); // Textual value HSSFRow r1 = s.getRow(0); HSSFCell c1 = r1.getCell(1); assertEquals("=CHOOSE(2,A2,A3,A4)", c1.getRichStringCellValue().toString()); // Formula Value HSSFRow r2 = s.getRow(1); HSSFCell c2 = r2.getCell(1);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?