首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用HSSF Java删除Excel工作表

无法使用HSSF Java删除Excel工作表
EN

Stack Overflow用户
提问于 2019-03-13 15:18:47
回答 1查看 226关注 0票数 1

我无法从工作簿中删除excel工作表。我尝试了不同的解决方案,但无法获得解决方法。假设我想使用"wb.RemoveSheetAt(5)“删除编号为5的页面,我只能在删除编号为6的页面之后删除它。

代码:

代码语言:javascript
复制
public void cloneSheet(String sheetName , int NoOfClones){
    int temp = 0;
    for(int i = 0 ; i <= NoOfClones ; i++){
        HSSFSheet tsheet = workbook.cloneSheet(temp = workbook.getSheetIndex(sheetName));
        workbook.setSheetName((workbook.getSheetIndex(tsheet)), sheetName+i);   
    }
    workbook.removeSheetAt(workbook.getSheetIndex(sheetName));
}

这是我得到的错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 21, Size: 21
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at org.apache.poi.hssf.record.ExternSheetRecord.getRef(ExternSheetRecord.java:164)
at org.apache.poi.hssf.record.ExternSheetRecord.adjustIndex(ExternSheetRecord.java:168)
at org.apache.poi.hssf.model.LinkTable.updateIndexToInternalSheet(LinkTable.java:419)
at org.apache.poi.hssf.model.InternalWorkbook.removeSheet(InternalWorkbook.java:721)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.removeSheetAt(HSSFWorkbook.java:899)
at exceleditor.ExcelEditor.cloneSheet(ExcelEditor.java:104)
at exceleditor.QLaunchExcelEditor.main(QLaunchExcelEditor.java:290)
EN

回答 1

Stack Overflow用户

发布于 2019-03-13 15:35:00

代码语言:javascript
复制
FileInputStream fileStream = new FileInputStream(excelFile);
POIFSFileSystem poiFS = new POIFSFileSystem(fileStream);
HSSFWorkbook workbook = new HSSFWorkbook(poiFS);
workbook.removeSheetAt(5);
FileOutputStream output = new FileOutputStream(excelFile);
workbook.write(output);
output.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55136373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档