java - 使用 selenium webdriver 在第 2 列中写入数据时,数据从第 1 列中删除

标签 java selenium-webdriver apache-poi

这是我的代码:

    public static String[] array1 = {"devu","xyz","test","bb","run"};
    public static String[] array2 = {"dvu","yz","tet","b","run"};


 String excelFileName = "C:/Users/admin/IdeaProjects/Google_Demo/Write1.xlsx";//name of excel file

        String sheetName = "Sheet1";//name of sheet

        XSSFWorkbook wb = new XSSFWorkbook();
        XSSFSheet sheet = wb.createSheet(sheetName);

        //iterating r number of rows
        for (int r = 0; r < 5; r++) {
            XSSFRow row = sheet.createRow(r);

            //iterating c number of columns
            for (int c = 0; c < 1; c++) {
                if (!row.equals(null)) {
                XSSFCell cell = row.createCell(c);

                cell.setCellValue(array1[r]);

            }
        }}



        int count1 = 0;
        for (int r = 0; r < 5; r++) {
            XSSFRow row1 = sheet.createRow(r);


            //iterating c number of columns
            for (int c = 2; c < 3; c++) {

                if (row1.equals(null)) {
                    row1 = sheet.createRow(count1);
                }
                    XSSFCell cell = row1.createCell(c);


                    cell.setCellValue(array2[r]);
                    count1++;

                }


            }

            FileOutputStream fileOut1 = new FileOutputStream(excelFileName);

            //write this workbook to an Outputstream.
            wb.write(fileOut1);
            //fileOut.flush();
            fileOut1.close();
        }

我使用了 2 个数组并使用 Selenium webdriver 和 POI 将数据写入 excel。

它工作正常如果我只写入第一个数组的数据但是一旦第二个数组的循环运行,它就会从 excel 的第一列中删除数据并在新列中只写入第二个数组的数据。

最佳答案

这是因为您在第二个 for 循环 中再次创建了一个新的 row。应删除下面的行以使您的代码按照规定的行为工作 -

XSSFRow row1 = sheet.createRow(r);

下面是完整的更新代码-

public static String[] array1 = {"devu","xyz","test","bb","run"};
public static String[] array2 = {"dvu","yz","tet","b","run"};
String excelFileName = "C:/Users/admin/IdeaProjects/Google_Demo/Write1.xlsx";//name of excel file

String sheetName = "Sheet1";//name of sheet

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet(sheetName);
//iterating r number of rows
for (int r = 0; r < 5; r++) {
    XSSFRow row = sheet.createRow(r);
    //iterating c number of columns
    for (int c = 0; c < 1; c++) {
            XSSFCell cell = row.createCell(c);
            cell.setCellValue(array1[r]);

    }
}
for (int r = 0; r < 5; r++) {
    XSSFRow row = sheet.getRow(r);
    // As per current input and code, this if block will never execute. 
    // However, adding it so that later, if first for loop will change, this code can work.
    if(row == null){
        row = sheet.createRow(r);        
    } 
    //iterating c number of columns
    for (int c = 2; c < 3; c++) {
        XSSFCell cell = row1.createCell(c);
        cell.setCellValue(array2[r]);
    }
}

FileOutputStream fileOut1 = new FileOutputStream(excelFileName);
//write this workbook to an Outputstream.
wb.write(fileOut1);
//fileOut.flush();
fileOut1.close();

关于java - 使用 selenium webdriver 在第 2 列中写入数据时,数据从第 1 列中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470384/

相关文章:

java - 如何将条形图放置在刻度线之间?

JAVA - docx中的字体路径而不是字体名称

java - 创建嵌入式节点时出现 ElasticSearch 异常

java - 二进制转十进制并翻转0和1 JAVA

java - 使用 Selenium 网络驱动程序获取元素的绝对位置

java - Selenium /页面工厂 : Find child elements using parent element's @FindBy?

ruby-on-rails - 使用 Apache POI 从 Ruby on Rails Web 应用程序中的 MS Word (.doc) 文件中提取文本

java - 如何将数组列表从 Activity 发送到另一个 Activity ,而不访问其他 Activity

java - Spring boot userRepository.findAll() 显示太多次并导致 stackoverflow 错误

python - Selenium :无法下载文件