【问题标题】:Not able to write data in xlsx file using java?无法使用 java 在 xlsx 文件中写入数据?
【发布时间】:2019-07-15 19:38:46
【问题描述】:

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

经过大量谷歌搜索后,我发现许多用户使用列表或对象写入 .xlsx 文件。

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

然后我创建了 XSSFWorkbookXSSFSheetXSSFRowXSSFCell 来写入数据。 我使用 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 文件。

我不知道为什么我会得到这个以及我的代码有什么问题?

提前致谢!

【问题讨论】:

  • 我想你想要 head.get(0)
  • 这段代码没有引用 Selenium,所以我删除了这些标签。您还需要为 Java/Excel 库添加一个标签,以便获得这些人的帮助。
  • 您能否将您的代码包装在一个独立的示例中,SSCCE?这样我们就可以将代码放入 Eclipse 或其他任何东西中并运行它,而无需编写 main 等。当然,可以理解,我们需要包含 POI 库。

标签: java


【解决方案1】:
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    相关资源
    最近更新 更多