Apache poi 从java编写Excel
我正在尝试编写一个函数,将其写入excel文件。该函数将在一个循环中被多次调用,每个循环都会在新行中写入内容Apache poi 从java编写Excel,apache-poi,Apache Poi,我正在尝试编写一个函数,将其写入excel文件。该函数将在一个循环中被多次调用,每个循环都会在新行中写入内容 public static void ExcelImport (String SheetName, String NameExcel, String Oobj,Integer i ) { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.creat
public static void ExcelImport (String SheetName, String NameExcel, String Oobj,Integer i )
{
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("SheetName");
//create Row
Row Row = sheet.createRow(i-1);
//create column
Cell Cell = Row.createCell(1);
//write
Cell.setCellValue(Oobj);
try
{
//Write the workbook in file system
FileOutputStream out = new FileOutputStream(new File("C:\\Users\\Name\\Desktop\\" + NameExcel + ".xls"));
workbook.write(out);
out.close();
System.out.println(i);
}
catch (Exception e)
{
e.printStackTrace();
}
}
这非常简单,我的目标是将字符串Oobj写入i行的第二列。但出于某种原因,它只写最后一次运行。例如,如果循环运行了6次,那么第2列第5行中只会写入一些内容。在第0行中没有Oobj,在第1行中没有Oobj1,在第2行中没有Oobj2等等。我在第5行中只得到了“Oobj5”
可能是因为每次创建的新工作表都会覆盖旧工作表吗?在这种情况下,如何在同一张表中写入?“写入excel文件”不清楚 对于.xlsx文件:这是一个具有某种文件夹结构的zip容器,如果您了解该结构,您可以在其中执行任何操作 如果您想更改某些打开的Excel工作表的内容:有良好的COM适配器使用经验,请参阅
“可能是因为每次创建的新工作表都会覆盖旧工作表吗?”:不仅是工作表,甚至工作簿每次都是新创建的。“如何在同一工作表中书写?”:
HSSFWorkbook工作簿
对象必须位于该方法之外。例如,它可以是类成员。但是,编写工作簿也必须在该方法之外,因为工作簿
在编写后关闭。它不仅有createSheet
,而且还有getSheet
方法。因此,首先尝试获取工作表,仅当它尚未出现时才创建新的工作表。