因工作需要,一直在摸索使用java代码操作Excel文件的方式,之前一直使用POI的方式在进行读写,代码冗长,不易维护。无意中发现了Spire.XLS for Java 这个java操作excel的组件。它可以很方便的操作EXCEL文件,

官网地址:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html

java 删除excel单元格格式 java删除excel列_xls

同时他也有自己的帮助文档,虽说个人觉得帮助文档写的不够详细,但是仔细研究一下、查看源码还是大概可以完成一些简单的功能。

java 删除excel单元格格式 java删除excel列_Java_02

     该组件包可以通过maven仓库下载:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>


        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.xls.free</artifactId>
            <version>2.2.0</version>
        </dependency>

  首先体验最简单的功能,用JAVA代码对EXCEL表格里的一列或多列进行删除,

/***
     * 删除不需要的列,保留需要的“峰值流出流速(Mbit/s)等需要的信息”
     */
    public static void deleteOLTCol() {

        //加载文档
        Workbook wb = new Workbook();
        System.out.println("加载OLT流量报表....");
        wb.loadFromFile("F:\\Datareport\\OLT.xlsx");

        //获取工作表
        Worksheet sheet = wb.getWorksheets().get(0);
        //从第9列开始删除,删除9列在内的4列
        sheet.deleteColumn(9, 4);
        //经过上一次删除后,索引重新从1开始,从第11列开始,删除11列在内的4列
        sheet.deleteColumn(11, 4);
        //保存文档
        wb.saveToFile("F:\\Datareport\\OLT流量报表.xlsx");
        wb.dispose();
        System.out.println("OLT流量报表格式整理完成....");
    }

   首先要导入 import com.spire.xls.Workbook,或者直接导入import com.spire.xls.*,通过Workbook的对象wb的loadFromFile()方法获得需要操作的Excel文件,然后去获得他的工作表,此处工作表的索引从0开始,即第一张工作表是wb.getWorksheets().get(0),(此处想要吐槽一下,这个组件的索引不太明确,有的索引从1开始,有的从0开始,经常会弄乱。比如他的复制单元格内容,有的索引就是从1开始)

想要删除某一列单元格在这个组件上操作很方便,获得工作表对象sheet后,调用它的deleteColum()方法即可,Spire .XLS for Java的源码如下:

java 删除excel单元格格式 java删除excel列_java 删除excel单元格格式_03

 此时的index是从1开始的,sheet.deleteColumn(9, 4)的意思是删除从第9列开始删除,删除第9列在内的4列,即9、10、11、12列:

java 删除excel单元格格式 java删除excel列_java_04

 我要删除这4列,执行后结果如下:

java 删除excel单元格格式 java删除excel列_JAVA_05

最后调用保存方法保存到另一个文件,对源文件不会造成数据的损失,wb.saveToFile();

同理,如果要删除某银行,调用sheet.deleteRow(int index, int count)方法。