码迷,mamicode.com
首页 > 其他好文 > 详细

POI删除Excel的sheet页

时间:2020-03-18 11:54:12      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:破坏   有一个   一个   除了   功能   默认   exce   就会   处理   

POI删除Excel的sheet页

poi有删除一个sheet页的方法,我希望除了一个sheet页之外其他的都删除,但是使用的时候发现,删除之后经常会出现文件破坏的提示,研究发现,是由于excel有一个默认的当前页功能。

比如表格中有3个sheet页,保存的时候默认显示的是第三页,那么删除两页之后,表格只剩一页,打开的时候表格会显示第三页失败,就会提示文件损坏。。

遇到这种情况,有两种方法:

  1. 将表格默认显示的页改为第一页再处理
  2. 使用代码修改默认页。

此方法删除表格中除了传入的页之外所有的页

    /**
     * 删除模板表格(除了 id之外所有的)
     */
    public static void removeModelSheet(Workbook wb, int id) {
        int numberOfSheets = wb.getNumberOfSheets();
        for (int i = numberOfSheets - 1; i > -1; i--) {
            if (i != id) {
                wb.removeSheetAt(i);
            }
        }
        //设置默认显示第一页
        wb.setActiveSheet(0);
    }
    /**
     * 删除模板表格(除了 name之外所有的)
     */
    public static void removeModelSheet(Workbook wb, String name) {
        int sheetIndex = wb.getSheetIndex(wb.getSheet(name));
        removeModelSheet(wb,sheetIndex);
    }
    /**
     * 删除模板表格(除了 noDelSheet之外所有的)
     */
    public static void removeModelSheet(Workbook wb, Sheet noDelSheet) {
        int sheetIndex = wb.getSheetIndex(noDelSheet);
        removeModelSheet(wb,sheetIndex);
    }

POI删除Excel的sheet页

标签:破坏   有一个   一个   除了   功能   默认   exce   就会   处理   

原文地址:https://www.cnblogs.com/ziyue7575/p/12515903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!