当前位置: 首页 > 知识库问答 >
问题:

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

凤柏
2023-03-14

我有一个存储在变量中的数据,然后我想把我的数据写到excel文件中。xlsx)。(即)我使用自动化测试工具,如硒从网页上获取数据,我把它存储在变量,我想写在xlsx文件

在大量的谷歌搜索后,我发现许多用户使用列表或对象来写入。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个答案

苏星宇
2023-03-14
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

 类似资料:
  • 我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。

  • 问题内容: 我想在HDFS中创建文件并在其中写入数据。我使用以下代码: 它创建文件,但不写入任何内容。我搜索了很多,但没有找到任何东西。我怎么了 我是否需要任何权限才能在HDFS中写入? 问题答案: 的替代方法,你可以在获取文件系统时传递URI

  • 问题内容: 有写Excel 2007+文件的Python模块吗? 我对编写长度超过65535行的文件感兴趣,只有Excel 2007+支持它。 问题答案: 您可以查看两个库。 Python-xlsx和 PyXLSX 编辑:正如评论所提到的,编写时请检查openpyxl

  • 我正在尝试将json文件转换为csv文件。json文件来自tweepy。 但是当我打印它的时候,它起作用了。当我只写时,它就起作用了。 我是一个新手在Python和twepy。但是我的直觉告诉我,这个问题与json文件本身有关。 这是json文件本身: 另一个错误: Traceback(最近一次调用):文件"C:\用户\用户\桌面\fase 1-20170930T062552Z-001\trans

  • 我是JAVA新手。我需要将特定文件夹中的多个文件加载到excel xlsx(不是xls文件,因为输入文件有超过65k记录)文件的不同工作表中。下面是我编写的代码。xlsx文件损坏了,无法打开。你能帮忙吗? 4月27日编辑:工作代码,但存在性能问题。

  • 我刚刚开始使用node.js中的level模块学习level.db。 但这段代码给出了以下 错误[WriteError]:必须是C:\users\mathe\desktoph\leveldb-and-crypto\node_modules\levelup\lib\levelup.js:274:23 有人能告诉我哪里不对劲吗?