如何计算从一个方法发送到另一个方法的总参数

时间:2018-11-03 12:18:59

标签: java apache-poi

       for (int i = 0; i < mainArrayList.size(); i++) {

            ArrayList<String> row = mainArrayList.get(i);

            for (int t = 0; t < row.size(); t++) {
              if(condition){
                 //statement
              continue;
             else{
                 int roww = i;
                 int cell = t;
                 editFile(roww, cell);
                System.out.println("no of row:" + roww + " no of 
                     cell " + cell);
                System.out.println("FALSE");
                continue;  
               }
       } 
   } 

我有if-else语句,如上面的代码。所有arraylist数据均来自已导入的excel文件,并将其存储在arraylist中。因此,基本上每个数据都会经过该条件。如果条件结果为假,它将调用editFile方法(下面的代码)来编辑原始文件,以编辑要发送的变量roww和cell11的值的特定行和单元格。如果只有1个结果为假,我已经对其进行了测试,它可以在该特定的列和行上很好地进行编辑,但是当我有一个以上的假结果时,它只会转到发送的最后一个值。

public static void editFile(int roww, int cell) {
    try {

        FileInputStream file = new FileInputStream(new File("xxx"));

        XSSFWorkbook workbook = new XSSFWorkbook(file);
        XSSFSheet sheet = workbook.getSheetAt(0);

        for (int ff = 0; ff < roww + 1; ff++) {
            XSSFRow row = sheet.getRow(roww);
            row.createCell(cell).setCellValue("FALSE");
        }
        file.close();

        FileOutputStream outFile = new FileOutputStream(
                new File("xxx2"));
        workbook.write(outFile);
        outFile.close();

        System.out.printf("DONE UPDATE");

    } catch (Exception e) {
        e.printStackTrace();
    }
}

例如我有价值

roww = 12, cell = 10

roww = 18, cell = 20

editFile方法将仅编辑roww = 18, cell = 20

有人可以帮助我吗?预先谢谢你

1 个答案:

答案 0 :(得分:-1)

感谢Michael Butscher帮助我。这是非常简单的错误。我应该使用相同的文件。我应该对输入使用相同的excel文件,对outfile使用相同的excel文件。

public static void editFile(int roww, int cell) {
try {

    FileInputStream file = new FileInputStream(new File("samefile"));

    XSSFWorkbook workbook = new XSSFWorkbook(file);
    XSSFSheet sheet = workbook.getSheetAt(0);


        XSSFRow row = sheet.getRow(roww);
        row.createCell(cell).setCellValue("FALSE");

    file.close();

    FileOutputStream outFile = new FileOutputStream(
            new File("samefile"));
    workbook.write(outFile);
    outFile.close();

    System.out.printf("DONE UPDATE");

} catch (Exception e) {
    e.printStackTrace();
}

}