package com.shequ.util;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 表格工具类
*/
public class POIUtil {
public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response) {
ExportParams exportParams = new ExportParams(title, sheetName);
exportParams.setCreateHeadRows(isCreateHeader);
defaultExport(list, pojoClass, fileName, response, exportParams);
}
public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, HttpServletResponse response) {
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
}
public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
defaultExport(list, fileName, response);
}
private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams) {
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
if (workbook != null) ;
downLoadExcel(fileName, response, workbook);
}
private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
workbook.write(response.getOutputStream());
} catch (IOException e) {
throw new RuntimeException(e.getMessage());
}
}
private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
if (workbook != null) ;
downLoadExcel(fileName, response, workbook);
}
/**
* 导入
* @param filePath
* @param titleRows
* @param headerRows
* @param pojoClass
* @param <T>
* @return
*/
public static <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> pojoClass) {
if (StringUtils.isBlank(filePath)) {
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
List<T> list = null;
try {
list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
} catch (NoSuchElementException e) {
throw new RuntimeException("模板不能为空");
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
return list;
}
/**
* 导入表格
* @param file
* @param pojoClass
* @param <T>
* @return
*/
public static <T> List<T> importExcel(MultipartFile file, Class<T> pojoClass) {
if (file == null) {
return null;
}
ImportParams params = new ImportParams();
try {
List<T> list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
return list;
} catch (NoSuchElementException e) {
throw new RuntimeException("excel文件不能为空");
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
/*
导出表格
*/
public static void exportExcel(Collection<?> listData, Class<?> pojoClass, String headTitle, String sheetName, HttpServletResponse response) {
ExportParams params = new ExportParams(null, null);
params.setHeight((short) 8);
params.setStyle(ExcelExportMyStylerImpl.class);
try {
Workbook workbook = ExcelExportUtil.exportExcel(params, pojoClass, listData);
String fileName = headTitle + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
fileName = URLEncoder.encode(fileName, "UTF8");
response.setContentType("application/vnd.ms-excel;chartset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+fileName + ".xls");
ServletOutputStream out=response.getOutputStream();
workbook.write(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于ssm+微信小程序的社区管理系统+源代码+文档说明 (高分代码项目),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。 基于ssm+微信小程序的社区管理系统+源代码+文档说明 (高分代码项目),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。 基于ssm+微信小程序的社区管理系统+源代码+文档说明 (高分代码项目),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。 基于ssm+微信小程序的社区管理系统+源代码+文档说明 (高分代码项目),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。基于ssm+微信小程序的社区管理系统+源代码+文档说明 (高分代码项目),含有代码注释,新手也可看懂,个人手打98分
资源推荐
资源详情
资源评论
收起资源包目录
基于ssm+微信小程序的社区管理系统+源代码+文档说明 (高分代码项目) (647个子文件)
$PRODUCT_WORKSPACE_FILE$ 1KB
POIUtil.class 8KB
QueAndOpt.class 4KB
Repair.class 4KB
GoodsController.class 3KB
RepairApi.class 3KB
CommonController.class 3KB
MessageController.class 3KB
ExcelExportMyStylerImpl.class 3KB
GetOpenIDUtil.class 3KB
ChoiceController.class 3KB
AdminController.class 3KB
Goods.class 3KB
User.class 3KB
Message.class 3KB
QuestionController.class 3KB
Vote.class 3KB
SurveyController.class 3KB
Choice.class 3KB
Sur_QueController.class 3KB
Pay.class 2KB
PayApi.class 2KB
VoteApi.class 2KB
ChoiceServiceImpl.class 2KB
MyTool.class 2KB
GoodsPayController.class 2KB
Repairontroller.class 2KB
Admin.class 2KB
Sur_Que.class 2KB
GoodsPayApi.class 2KB
PayController.class 2KB
UserApi.class 2KB
SurveyServiceImpl.class 2KB
GoodsApi.class 2KB
QuestionServiceImpl.class 2KB
GoodsServiceImpl.class 2KB
GoodsPayServiceImpl.class 1KB
Sur_QueServiceImpl.class 1KB
MessageServiceImpl.class 1KB
PayServiceImpl.class 1KB
SurveyApi.class 1KB
MessageApi.class 1KB
Question.class 1KB
Survey.class 1KB
GoodsPay.class 1KB
RepairServiceImpl.class 1KB
AdminServiceImpl.class 1KB
GetOpenIdApi.class 1KB
Layui.class 932B
RandNum.class 914B
UserServiceImpl.class 895B
ChoiceMapper.class 887B
ChoiceService.class 809B
VoteServiceImpl.class 748B
SurveyMapper.class 690B
QuestionMapper.class 653B
SurveyService.class 612B
GoodsPayMapper.class 607B
GoodsMapper.class 606B
PayMapper.class 581B
QuestionService.class 575B
Sur_QueMapper.class 537B
MessageMapper.class 529B
GoodsPayService.class 529B
GoodsService.class 528B
PayService.class 503B
RepairMapper.class 467B
AdminMapper.class 465B
Sur_QueService.class 459B
Constant.class 457B
MessageService.class 451B
RepairService.class 389B
AdminService.class 387B
UserMapper.class 309B
VoteMapper.class 241B
UserService.class 231B
VoteService.class 163B
.classpath 1KB
org.eclipse.wst.common.component 646B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 134KB
layui.css 59KB
screen.css 48KB
print.css 46KB
global.css 17KB
layer.css 14KB
xadmin.css 10KB
layui.mobile.css 10KB
laydate.css 7KB
demo.css 6KB
style.css 5KB
login.css 3KB
personal.css 3KB
reset.css 1KB
code.css 1KB
iconfont.css 887B
font.css 505B
typography.css 452B
iconfont.eot 48KB
iconfont.eot 40KB
共 647 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
王二空间
- 粉丝: 7655
- 资源: 2111
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 融合图神经网络和注意力机制的会话推荐模型.pdf
- 基于相对变换的骨肉瘤分类算法.pdf
- 基于YOLOv5s的注意力改进研究.pdf
- 智慧医疗资讯个性化服务平台医学感知.pdf
- 基于骨架局部曲率分水岭算法的颗粒特征识别分割方法.pdf
- 粒子群优化算法在工程中的应用.pdf
- 一种基于标签比例信息的迁移学习算法.pdf
- 基于孪 生网络的心电信号智能诊断模型.pdf
- 基于差分自回归移动平均法预测苏格兰鲱鱼的迁移.pdf
- EKF扩展卡尔曼滤波定位与粒子滤波定位:Qt仿真程序实践,ekf 扩展卡尔曼滤波定位 qt仿真程序 粒子滤波定位 ,核心关键词:ekf扩展卡尔曼滤波定位; qt仿真程序; 粒子滤波定位; 定位技术
- 高精密四轴喷涂机程序:立体多角度喷涂,模块化公式计算,简化操作,提高生产力,喷涂机程序,X Y Z R轴喷涂,前后左右上下多角度,配合高精密凸轮分割器分度,立体喷涂 四轴直线插补,伺服多点位高速定位
- Microsoft.SqlTools.ServiceLayer-win-x64-net8.0.zip
- 基于Proteus仿真的两轴步进电机控制程序与菜单界面操作指南,电机控制类程序和仿真-两轴控制类 51单片机的电机控制程序和仿真电路 3D打印或数控机床控制系统 单片机仿真 X轴Y轴两路步进电机控制
- 基于知识蒸馏的实时动作预测方法研究.pdf
- 基于文本信息的人物性格分析算法的研究与实现.pdf
- 语义网环境下PROV数据溯源技术应用研究.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功