java手写excel_GitHub - KuroChan1998/easy-office-process: 一个我自己手写的基于java poi的处理excel表格的小框架...

这是一个基于Java POI的轻量级框架,简化了对Excel和Word的操作。支持读写Excel,包括创建新文件、读取单元格、删除行等。还提供了对Word的支持,如替换文本。框架易于上手,适用于快速处理表格和文档。
摘要由CSDN通过智能技术生成

使用说明

Java针对MS Office的操作的库屈指可数,比较有名的就是Apache的POI库。一些有名的开源工具如:hutool,也对POI进行了二次封装。我基于自己做项目时的一些需求,针对POI进行了二次封装,并进行了一系列改进,使Java操作Excel、Word等文件变得更加简单。本框架相比于hutool等更“轻”,没有十分复杂的设计模式、接口等,上手更加容易。

[toc]

环境&依赖

jdk1.8

poi3.17

idea中直接导入maven项目即可完成初始构建。

表格处理

源码实现主要在com.jzy.office.excel下

Demo示例

在com.jzy.demo.excel包下有一些示例程序。

SimpleReadExcelDemo:一个简单的读excel示例。修改相应的输入文件路径信息后即可运行,下同...

public class SimpleReadExcelDemo {

public static void main(String[] args) throws IOException, InvalidFileTypeException {

//改成你实际的文件路径

String filePath = "E:\\Engineering\\java\\idea\\excel-processing\\example\\test1.xlsx";

//通过文件绝对路径构造excel对象

DefaultExcel excel = new DefaultExcel(filePath);

...

}

}

SimpleWriteExcelDemo:一个简单的写excel示例。

ReadSeatTableDemo:读取座位表信息示例。

WriteSeatTableDemo:修改座位表信息示例。给定一个教室,一组学生姓名列表,要求在座位表模板的基础上只输出该教室的sheet并将列表中的学生按座位顺序依次填充。

.....

DefaultExcel——默认的excel处理类

Snipaste_2020-04-01_11-20-25.png

DefaultExcel是处理excel默认类,支持解析.xlsx、.xls、.et文件于一体,直接使用DefaultExcel或者继承DefaultExcel都可以方便的读写excel。它又继承自类CommonExcel,该类是核心,继承自抽象类AbstractExcel,实现了大量对poi处理excel二次封装后的方法;ExcelValidity接口用于检验表格的合法性;Resettable接口用于体现表格各类参数可重置的特性。

构造DefaultExcel对象

要处理excel前我们首先要根据输入excel文件构造处理对象。一个最基础的方法就是使用DefaultExcel类。

简单地,你可以直接由文件绝对路径构造DefaultExcel对象。

String filePath="E:\\test1.xlsx";

//通过文件绝对路径构造excel对象

DefaultExcel excel=new DefaultExcel(filePath);

你也可以传入InputStream流对象,并指定excel的版本以构造DefaultExcel对象。

String filePath="E:\\\test1.xlsx";

//通过InputStream流对象,并指定excel的版本构造excel对象

DefaultExcel excel=new DefaultExcel(new FileInputStream(new File(filePath)), ExcelVersionEnum.VERSION_2007);

当然,如果你仅仅想创建一个新的excel,而不是读取已有的文件,你可以直接如下构造:

//创建一个新的excel2007文件

DefaultExcel excel2007 =new DefaultExcel(ExcelVersionEnum.VERSION_2007);

//创建一个新的excel2003文件

DefaultExcel excel2003 =new DefaultExcel(ExcelVersionEnum.VERSION_2003);

构造excel表格的版本通过枚举ExcelVersionEnum决定。

进行读操作

完成excel对象的构造后,就可以直接调用其已实现的方法来读取表格信息。

获取当前表格的sheet数量

int sheetCount = excel.getSheetCount();

获取第n张sheet的总行数,通过传入sheet索引数值n-1,下同。如第一张sheet索引值为0,类比数组。

int sheetIndex=0; // 第一张sheet

int rowCount = excel.getRowCount(sheetIndex);

获取指定sheet的名称。

String sheetName = excel.getSheetName(sheetIndex);

根据sheet名称获取该名称对应sheet的索引。

int targetSheetIndex = excel.getSheetIndex(sheetName);

获取指定sheet指定行的所有值。

int rowIndex = 0; //第1行

List rowValue = excel.readRow(sheetIndex, rowIndex);

获取指定sheet指定列的所有值(从指定行开始到最后)

int columnIndex = 0; //第1列

int startRow = 1; //第2行开始

List columnValue = excel.readColumn(sheetIndex, startRow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值