当前位置: 首页 > 知识库问答 >
问题:

写入excel时只循环一次

井嘉胜
2023-03-14

我在页面上有一个表,我需要从表中的特定单元格中读取值。我想把这些值写到excel文件中。问题是for loop只循环一次,并且只为Excel中的第一个单元格写入值。我试过很多不同的循环,在谷歌上搜索,但都找不到答案。请帮帮忙。下面是我要编写到Excel的代码:

public static void setExcelFile(String Path, String SheetName) throws Exception {

        try {

            // Open the Excel file

            FileInputStream ExcelFile = new FileInputStream(Path);

            // Access the required test data sheet

            ExcelWBook = new XSSFWorkbook(ExcelFile);

            ExcelWSheet = ExcelWBook.getSheet(SheetName);

        } catch (Exception e) {

            throw (e);

        }

    }

这是我写入excel文件的地方

     public static void setCellData(String Result, int RowNum, int ColNum) throws Exception {

        try {

            Row = ExcelWSheet.getRow(RowNum);

            Cell = Row.getCell(ColNum, Row.RETURN_BLANK_AS_NULL);

            if (Cell == null) {

                Cell = Row.createCell(ColNum);

                Cell.setCellValue(Result);

            } else {

                Cell.setCellValue(Result);

            }

            // Constant variables Test Data path and Test Data file name

            FileOutputStream fileOut = new FileOutputStream(Constant.Path_TestData + Constant.File_TestData);

            ExcelWBook.write(fileOut);

            fileOut.flush();

            fileOut.close();



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

and here is my  loop
//
ExcelUtils.setExcelFile(Constant.Path_TestData + Constant.File_TestData, "Item_Selection");

List<WebElement> li = driver.findElements(By.cssSelector("#offerVersionSkuListTable>table:nth-child(2)>tbody>tr>td#regularCost"));

for (int j = 0; j<li.size(); j++) {

    String cellValue = li.get(j).getText();
    List<String> valueList = new ArrayList<String>();
    valueList.add(cellValue);

           for (int m = 0; m<valueList.size(); m++) {

                        int temp = row;

        ExcelUtils.setCellData(valueList.get(m), temp, Constant.Col_TblRegCost);
                        temp++;

                    }
                }

循环成功执行并从表中正确打印出值,但我需要将这些值写入Excel。似乎在excel中写入第一个值后,for loop再次循环,但没有在excel中第二次写入任何内容。你能帮我找出原因吗?

共有1个答案

柯琛
2023-03-14

为什么for循环只循环一次的解释是,您试图循环通过的列表只包含一个值。当for循环通过该值完成循环时,循环中断。就像列表将有五个值一样,循环将循环遍历这些值,然后中断。

 类似资料:
  • 我试图实现每秒循环一次的ScheduledExecutorService线程,但现在它只循环一次。 我的问题是如何设置它,使它周期性地循环,而不是一次迭代? 另外,如何将连接池传递给线程,以便每次迭代都可以查询数据库?任何帮助都非常感谢。

  • 本文向大家介绍python3 循环读取excel文件并写入json操作,包括了python3 循环读取excel文件并写入json操作的使用技巧和注意事项,需要的朋友参考一下 文件内容: excel内容: 代码: 结果: 补充知识:Python mysql数据 读取时间参数 for循环写入Excel文件 最近在利用Python 实现自动化表报时,有个功能是mysql的业务时间是读取模板文件的时间参

  • 在我的部分代码中,循环中有一个语句,它应该在每次迭代时都请求输入。然而,它只要求输入一次,当循环再次运行时不会再次要求输入,就好像已经输入了一些内容一样。这真的很烦人,因为似乎没有什么问题。

  • 问题内容: 我已经使用tkinter编写了gui,我需要将2个音阶的值实时发送到arduino。我已经验证了arduino正在使用另一个草图发送值到arduino并接收到这些草图,我已经在以下代码中添加了我的python代码 我已经在tkinter mainloop的内部和外部移动了它,并且从gui获得了不同的结果,而gui只在关闭gui时才不加载到数据中。有人可以告诉我如何让gui运行,并且当我

  • 嵌套for、while和if语句的时间复杂度相同吗?假设作为长度的数组给出。 上述声明的适用范围为O(n²)。 乍一看,上面的循环可以被认为是O(n),但最终我认为它也是O(n²)。 我没说错吧?

  • 我对python中双for循环的使用感到困惑,这是我的代码: 输出如下: 它只对外循环的第一个值执行内循环,为什么会发生这种情况?我怎样才能让它在第一个和第二个变量的所有组合上循环?