无法使用Java在xlsx文件中写入数据?

时间:2019-07-15 19:38:46

标签: java

我有一个存储在变量中的数据,然后我想将数据写入excel文件(.xlsx)。 (即)我使用硒等自动化测试工具从网页中获取数据,并将其存储在要写入xlsx文件的变量中

经过大量的google搜索,我发现许多用户使用列表或对象将其写入.xlsx文件。

我创建了一个列表,并将变量添加到该列表中,并使用循环语句(for循环)检查了我的数据是否通过打印而存储在列表中。

然后我创建了 XSSFWorkbook XSSFSheet XSSFRow XSSFCell 来写入数据。 我通过在单元格中使用 setCellValue 方法来编写单元格。

我的代码成功在其中创建了一个xlsx文件和表格 但是执行后,我无法在其中找到任何数据。

源代码:

ArrayList<String> head = new ArrayList<String>();

head.add("Register Number");
head.add(subject1);
head.add(subject2);  //subject1 and subject2 are variable i created

System.out.println(head.get(1));  //To check if my list has value

XSSFWorkbook workbook = new XSSFWorkbook();                               
FileOutputStream fileOut = new FileOutputStream("/home/st.xlsx"); 

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

{

     XSSFRow  Row  = sheet1.createRow(1);
     XSSFCell cell = Row.createCell(1);                          
     cell.setCellValue(head.get(1));                             
     sheet1.autoSizeColumn(1);
}

workbook.write(fileOut);
fileOut.close();

我希望代码将数据添加到文件中。

主要是 在执行过程中,当我尝试打开.xlsx文件时,其中包含数据。

但是 完成执行后,我得到了空的xlsx文件。

我不知道为什么会得到这个,而我的代码有什么问题呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

ArrayList<String> head = new ArrayList<String>();

head.add("Register Number");
head.add(subject1);
head.add(subject2);  // subject1 and subject2 are variable i created

System.out.println(head.get(0));  // To check if my list has value
System.out.println(head.get(1));  // To check if my list has value
System.out.println(head.get(2));  // To check if my list has value

XSSFWorkbook workbook = new XSSFWorkbook();                               
XSSFSheet sheet1 = wb.createSheet("Sheet1");

for (int r = 0; r < head.size(); r++) 
{

     XSSFRow row  = sheet1.createRow(r);
     XSSFCell cell = row.createCell(0);                          
     cell.setCellValue(head.get(r));                             
     sheet1.autoSizeColumn(0);
}

// Write this workbook to a FileOutputStream.
FileOutputStream fileOut = new FileOutputStream("/home/st.xlsx"); 
workbook.write(fileOut);
fileOut.flush();
fileOut.close();

更多信息在这里: https://gist.github.com/madan712/3912272