使用 java 在 excel 的两列中写入多条记录

Write multiple records in two column in excel using java

我在 excel 中有两列,即设置和请求,需要使用 java

在 excel 中写入多行
public void WriteExcelValues() throws IOException {
String Ustr= setup.getText();
String urequest = request.getText();
    File file = new File(System.getProperty("user.dir") 
                            + "/src/main/uat/testdata/FreeTestData.xlsx");
    FileInputStream fis = new FileInputStream(file);
    Workbook workbook = new XSSFWorkbook(fis);
    Sheet sheet = workbook.getSheetAt(0);
    int lastRow = sheet.getLastRowNum();
    int n = 1;

    for (int i = 1; i <= n; i++) {   
        Row row = sheet.getRow(i); 
        Cell cell = row.createCell(8);
        Cell cell1 = row.createCell(9);

        cell.setCellValue(Ustr);
        cell1.setCellValue(urequest);
        //cell.setCellValue("AcknowledgementId"); 
    }

    FileOutputStream fos = new FileOutputStream(file);   
    workbook.write(fos);
    fos.close();
}

例如

以上代码不完整,也不满足条件。

我认为你的 for 循环不正确

 for(int i=1; i<=n; i++){

应该是

for(int i=1; i<=lastRow; i++){

File file = new File(System.getProperty("user.dir") 
                            + "/src/main/uat/testdata/FreeTestData.xlsx");

if(!file.exists())
{
    file.createNewFile();
}
else
{
    file.delete();
    file.createNewFile();
}

Workbook workbook = new XSSFWorkbook();

Sheet sheet = workbook.createSheet();

Row headerRow = sheet.createRow(0);

headerRow.createCell(0).setCellValue("Setupid");
headerRow.createCell(1).setCellValue("Request");

int cellCount = 10;

for (int i = 1; i <= cellCount; i++)
{

    Row row = sheet.createRow(i);

    row.createCell(0).setCellValue("cell " + i);
    row.createCell(1).setCellValue("cell " + i);

}

FileOutputStream fos = new FileOutputStream(file);

workbook.write(fos);

fos.close();

workbook.close();