Apache POI.复制表

mak*_*aks 4 java apache-poi

我正在使用apache poi创建一个excel文档.要在工作簿中创建新工作表,我编写下一个代码:

Workbook wb = new HSSFWorkbook(); 
Sheet sh = wb.createSheet();
Run Code Online (Sandbox Code Playgroud)

此代码创建并向工作簿添加工作表.但我想先创建工作表,然后将其添加到工作簿.像这样的Smth:

Sheet sh = new HSSFSheet();
wb.addSheet(sh);
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西,因为我想将数据从一张工作簿中的一张复制到另一张工作簿(工作簿界面有方法Sheet cloneSheet(int)).但是,Workbook界面没有像addSheet(Sheet sh)这样的方法.HSSFWorkbook也是最终类,所以我不能扩展它来实现add方法我该怎么做?

Gag*_*arr 9

您不能只从一个工作簿中获取Sheet对象,并将其添加到另一个工作簿.

您需要做的是同时打开旧工作簿和新工作簿,并在新工作簿中创建工作表.接下来,将旧表中使用的所有样式克隆到新表中(HSSFCellStyle具有将样式从一个工作簿克隆到另一个工作簿的方法).最后,迭代所有单元格并将其复制.