JAVA-POI通用工具类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
super(message);
// TODO Auto-generated constructor stub
}
public ExcelException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
public ExcelException(String message, Throwable cause) {
String sheetName,
int sheetSize,
OutputStream out
) throws ExcelException{
if(list.size()==0 || list==null){
throw new ExcelException("数据源中没有任何数据");
}
if(sheetSize>65535 || sheetSize<1){
* param sheetSize每个工作表中记录的最大个数
* param out导出流
* throws ExcelException
*/
public static <T> void listToExcel (
List<T> list ,
LinkedHashMap<String,String> fieldMap,
*如果需要的是引用对象的属性,则英文属性使用类似于EL表达式的格式
*如:list中存放的都是student,student中又有college属性,而我们需要学院名称,则可以这样写
* fieldMap.put("college.collegeName","学院名称")
* param sheetName工作表的名称
sheetSize=65535;
}
//创建工作簿并发送到OutputStream指定的地方
WritableWorkbook wwb;
try {
wwb = Workbook.createWorkbook(out);
//因为2003的Excel一个工作表最多可以有65536条记录,除去列头剩下65535条
//所以如果记录太多,需要放到多个工作表中,其实就是个分页的过程
//1.计算一共有多少个工作表
double sheetNum=Math.ceil(list.size()/new Integer(sheetSize).doubleValue());
//2.创建相应的工作表,并向其中填充数据
for(int i=0; i<sheetNum; i++){
//获取开始索引和结束索引
int firstIndex=i*sheetSize;
int lastIndex=(i+1)*sheetSize-1>list.size()-1 ? list.size()-1 : (i+1)*sheetSize-1;
//填充工作表
fillSheet(sheet, list, fieldMap, firstIndex, lastIndex);
//如果只有一个工作表的情况
if(1==sheetNum){
WritableSheet sheet=wwb.createSheet(sheetName, i);
fillSheet(sheet, list, fieldMap, 0, list.size()-1);
//有多个工作表的情况
}else{
WritableSheet sheet=wwb.createSheet(sheetName+(i+1), i);
}else{
throw new ExcelException("导出Excel失败");
}
}
}
/**
* MethodName : listToExcel
* Description :导出Excel(可以导出到本地文件系统,也可以导出到浏览器,工作表大小为2003支持的最大值)
* param list数据源
* param fieldMap类的英文属性和Excel中的中文列名的对应关系
* param out导出流
* throws ExcelException
*/
public static <T> void listToExcel (
List<T> list ,
LinkedHashMap<String,String> fieldMap,
* Version : 1.0.0
*/
public class ExcelUtil {
/**
* MethodName : listToExcel
* Description :导出Excel(可以导出到本地文件系统,也可以导出到浏览器,可自定义工作表大小)
* param list数据源
* param fieldMap类的英文属性和Excel中的中文列名的对应关系
}
}
wwb.write();
wwb.close();
}wenku.baidu.comatch (Exception e) {
e.printStackTrace();
//如果是ExcelException,则直接抛出
if(e instanceof ExcelException){
throw (ExcelException)e;
//否则将其它异常包装成ExcelException再抛出
String sheetName,
OutputStream out
) throws ExcelException{
listToExcel(list, fieldMap, sheetName, 65535, out);
super(message, cause);
// TODO Auto-generated constructor stub
}
}
2.POI核心处理
/**
* author : SUNZK-QQ:1131341075
* Date : 2018-8-23下午9:13:21
* Comments :导入导出Excel工具类
JAVA POI
1.Exception处理
public class ExcelException extends Exception {
public ExcelException() {
// TODO Auto-generated constructor stub
}
public ExcelException(String message) {
相关文档
最新文档