我需要使用POI在指定列的excel中编写传递失败

时间:2014-09-24 19:58:09

标签: java excel apache-poi testng

好的 - 所以我意识到在写完一些代码并找出东西后,jxl不支持xlsx,只支持POI(XSSF)。好的。我想要做的是搜索一个字符串值为&#34的单元格;结果"在指定的列中。一旦我找到了,那么当测试通过或失败时,它会写入" Pass"或"失败"在空白的单元格中。它将继续这样做,直到测试集完成。这是我用jxl编写的代码。

WritableWorkbook wb = Workbook.createWorkbook(new File(testData), workbook);
        WritableSheet ws = wb.getSheet("OrderCreateQA3");
        int colCount = ws.getColumns();
        for(int j=0; j<colCount; j++){
            Cell cell = ws.getCell(j,0);
            if(cell.getContents().contains("Result")){
                Cell[] cells = ws.getColumn(j);
                int len = cells.length;
                Label label = new Label(j,len, "Fail", getCellFormat(Colour.RED));
                ws.addCell(label);
                break;
            }
        }

        wb.write();
        wb.close();

以上是非常简单的,我找到了字符串,然后获取该列名称并根据长度写入pass或fail。关于如何使用POI做任何想法?

1 个答案:

答案 0 :(得分:1)

这也很简单。只需将jxl类/方法替换为POI对应项:

POI有XSSFWorkbook  使用XSSFWorkbook(java.io.File file)构造函数和XSSFSheet getSheet(java.lang.String name)方法。

XSSFSheet有一个XSSFRow getRow(int rownum)方法(例如循环到getLastRowNum())。

XSSFRowXSSFCell getCell(int cellnum, ...)方法。

XSSFCell有适当的getter / setter。