在Excel中编写的函数

时间:2016-12-19 07:27:50

标签: java excel apache-poi

我编写了一个使用POI在excel中写入数据的函数。但是,目前我必须指定在参数中写入数据的行和列。我想使这个函数通用,它应该在特定测试用例的下一列中自动编写数据,并且应该在测试用例更改时更改行。

public void WritetoExcel(String filepath,String DatatoWrite,int RowNum, int ColNum, int sheetnumber) throws Exception
    {   
         FileInputStream ExcelFile = new FileInputStream(filepath);
         ExcelWBook = new XSSFWorkbook(ExcelFile);
        ExcelWSheet = ExcelWBook.getSheetAt(sheetnumber);

        try{
            Row  = ExcelWSheet.getRow(RowNum);
            Cell = Row.getCell(ColNum, org.apache.poi.ss.usermodel.Row.RETURN_BLANK_AS_NULL);
            if (Cell == null) {
                Cell = Row.createCell(ColNum);
                Cell.setCellValue(DatatoWrite);
                } else {
                    Cell.setCellValue(DatatoWrite);
                }
            FileOutputStream fileOut = new FileOutputStream(filepath);
                ExcelWBook.write(fileOut);
                fileOut.flush();
                fileOut.close();
            }catch(Exception e){
                throw (e);
            }
        }

有人可以帮助我,我该怎么做?

1 个答案:

答案 0 :(得分:0)

public void WritetoExcel(String filepath, String DatatoWrite, int sheetnumber, boolean newTest) throws Exception {
        FileInputStream ExcelFile = new FileInputStream(filepath);
        ExcelWBook = new XSSFWorkbook(ExcelFile);
        ExcelWSheet = ExcelWBook.getSheetAt(sheetnumber);

        try {
            if (newTest) {
                Row = ExcelWSheet.createRow(RowNum++); 
                cellnum=0;
            }
            Cell = Row.creatCell(cellnum++);
            Cell.setCellValue(DatatoWrite);
            FileOutputStream fileOut = new FileOutputStream(filepath);
            ExcelWBook.write(fileOut);
            fileOut.flush();
            fileOut.close();
        } catch (Exception e) {
            throw (e);
        }
    }

据我所知,你有一张空白的Excel工作表,你想要填充数据。因此,每当布尔值为true并且始终是新单元格时,您需要创建一个新行。如果运行新的测试用例,则布尔值仅为true。使rownum和cellnum成为一个成员变量,并在启动时将它们的值设置为0.此代码需要一个空的excel文件。