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
资源评论
王二空间
- 粉丝: 6783
- 资源: 2024
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功