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 + -
显示快捷键?