首页 > 解决方案 > Selenium/Java - 将数据写入 Excel

问题描述

我是 Selenium 的新手,我正在尝试编写代码将数据写入 excel。此代码正在运行。但是,它只写在第二行。当我将“String FieldName1 更改为 3”的值时,它不会写入下一行。我更改了 header = spreadsheet.createRow(0); 的值 到(1)它确实写到了下一行,但是每次我运行测试时都这样做很痛苦。我需要的是每次运行时将数据写入下一行并将“String FieldName1 到 3”的值更改。提前致谢!

硒 > Java > Maven

公共类 testBed2 {

@Test   
public void writeExcel() throws IOException{
FileInputStream fis = new FileInputStream("C:\\Users\\ExportExcel.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet spreadsheet = workbook.createSheet( "TestData");
XSSFRow header;
header = spreadsheet.createRow(0);
header.createCell(0).setCellValue("FieldName1");
header.createCell(1).setCellValue("FieldName2");
header.createCell(2).setCellValue("FieldName3");
int rowNumber = 1;
            Row row = spreadsheet.getRow(0);

            //Column Count
            int colCount = row.getLastCellNum();
            for (int j = 0; j < colCount; j++) {
                System.out.println("Col Count : " + j);

            //Row Count
            int rowCount = spreadsheet.getLastRowNum() + 1; 
            for (int i = 0; i < rowCount; i++) {

                XSSFRow currentRow = spreadsheet.createRow(rowNumber);
                System.out.println("Row Count : " + i);

                String FieldName1 = "NAME1";
                String FieldName2 = "NAME2";
                String FieldName3 = "NAME3";

                currentRow.createCell(0).setCellValue(FieldName1);
                currentRow.createCell(1).setCellValue(FieldName2);  
                currentRow.createCell(2).setCellValue(FieldName3);

                FileOutputStream fos = new FileOutputStream("C:\\Users\\ExportExcel.xlsx");
                workbook.write(fos);
                fos.close();



        }

    }

} }

标签: javaexcelselenium

解决方案


我认为您的代码只写第二行的原因是,您的关闭代码位于 For 循环中。如果您在 {} 末尾编写关闭代码,您将得到正确答案。:)


推荐阅读