我试图将列表数据写入一个工作簿中的多个excel表格。与第一个列表一样,代码将创建新工作簿并为列表[1]创建新工作表,对于第二个列表,它将在现有工作簿中创建新工作表,依此类推。所以我写了下面的代码。但是它不起作用,我只能看到列表[1]的第一页。有人能帮我提供任何替代解决方案吗?
下面我写的代码
ArrayList<List<String>> tempresultdata=this.getSummaryList();
HSSFWorkbook workbook = new HSSFWorkbook();
String fileName="Path\\To\\XLS";
File file = new File(fileName);
FileOutputStream out;
if(!file.exists()) // This will create new workbook with new sheet if it doesnt exists{
HSSFSheet mySheet = workbook.createSheet(sheetname);
writeExcel(mySheet,tempresultdata);
} else // This add new sheet to above created workbook {
try {
HSSFWorkbook myWorkBook = (HSSFWorkbook) WorkbookFactory.create(file);
workbook=myWorkBook;
HSSFSheet mySheet = (HSSFSheet) workbook.createSheet(sheetname);
writeExcel(mySheet,tempresultdata);
} catch (InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try{
out = new FileOutputStream(fileName,true);
workbook.write(out);
out.close();
}catch(Exception e){
e.printStackTrace();
}
谢谢,Priyank Shah
在使用现有工作簿时,您不应该创建文件对象,只需要将文件位置提供给FileInpuStream
对象并将其引用传递给工作簿对象,然后对现有文件做任何您想做的事情。要添加工作表,只需使用创建方法命令
public void AddsheetintoExistingworkbook(String sheetname) throws IOException, InvalidFormatException{
//***************************Add a sheet into Existing workbook***********************************************
String path="C:\\Workspace\\Selenium_2.53\\src\\InputFiles\\Temp.xlsx";
fileinp = new FileInputStream(path);
workbook = new XSSFWorkbook(fileinp);
workbook.createSheet(sheetname);
fileOut = new FileOutputStream(path);
workbook.write(fileOut);
fileOut.close();
System.out.println("File is written successfully");
}
看起来您只是在写工作表
而不是工作簿
如果文件不存在,则此代码创建新文件并创建示例sheet1,但是如果文件存在,则它会将新工作表添加到现有的excel文件中。
HSSFWorkbook workbook = null;
File file = new File(context.getExternalFilesDir(null), "Sample.xls");
FileOutputStream fileOut = new FileOutputStream(file);
if (file.exists()) {
try {
workbook = (HSSFWorkbook)WorkbookFactory.create(file);
} catch (InvalidFormatException e) {
e.printStackTrace();
}
HSSFSheet sheet = workbook.createSheet("Sample sheet2");
}
else{
workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sample sheet1");
}
workbook.write(fileOut);
fileOut.close();
我试图使用apache POI、使用primefaces和java在现有的excel工作簿中创建一个新的工作表,但是到目前为止还没有成功。谁能告诉我这是怎么做的吗?我可以做单张 下面的代码是我为在一个xls文件中创建多个工作表而编写的,我给出的条件是它没有大于65535的of行创建新工作表并迭代它,但它显示错误 警告:允许范围(0..65535)之外的无效行号(65536)java.lang.Il
问题内容: 我已经浏览了几乎所有以前的线程,但是仍然无法正常工作。我正在尝试向现有工作簿中添加新工作表。我的代码有效,但是它继续添加更多(实际上很多)工作表。我不知道解决方案。下面是我的代码 问题答案: 如果要向现有电子表格中添加工作表,只需继续并将新工作表添加到文件中,而不是复制对象并尝试向其中添加新工作表。
问题内容: 我想向现有的Excel文件中添加工作表。我怎样才能做到这一点?我正在研究一个selenium项目,我想将所有自动化结果表添加到单个excel文件中。现在,我能够为每个工作表创建新的Excel文件。 问题答案: 如果从Java 使用: 分别打开现有工作表或创建新工作表: 要检查工作表是否存在以创建唯一的工作表名称,可以使用如下所示的内容: 然后您可以通过调用添加工作表: 在这种情况下,工
我想将工作表添加到现有的 excel 文件中。我该怎么做?我正在从事一个硒项目,我想将所有自动化结果表添加到单个 excel 文件中。现在,我可以为每个工作表创建新的Excel文件。
我想用Python将我的数据帧导出到现有Excel工作表中的指定列,我尝试了不同的方法,但都不起作用。我已经将导出到一个名为“IR delta”的excel工作表中,现在我想在运行一些代码生成后,将导出到与相同的工作表中。但是,将创建excel工作表“IR delta 1”,而不是导出同一工作表“IR delta”。谁能帮忙吗?非常感谢! df1 df2 请看下面我的代码: 此时,我已将导出到ex
我正在使用GoogleSheetsAPIv4[1]来使用Java脚本客户端API[2]操作一个Spreedsheet。 如何在不使用