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();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于微信小程序开发的web系统,适合做毕业设计,课程设计作业,java,springboot等技术,源码完整,配置后可直接运行。 基于微信小程序开发的web系统,适合做毕业设计,课程设计作业,java,springboot等技术,源码完整,配置后可直接运行。 基于微信小程序开发的web系统,适合做毕业设计,课程设计作业,java,springboot等技术,源码完整,配置后可直接运行。 基于微信小程序开发的web系统,适合做毕业设计,课程设计作业,java,springboot等技术,源码完整,配置后可直接运行。
资源推荐
资源详情
资源评论
收起资源包目录
基于ssm+微信小程序的社区管理系统.zip (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
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7670
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java spring boot冷链溯源管理系统文档+源码+全部资料+高分项目.zip
- 基于HyperledgerFabric实现的牛奶溯源项目文档+源码+全部资料+高分项目.zip
- 基于frp-0.58.1魔改二开,随机化socks5账户密码及端口、钉钉上线下线通知、配置文件oss加密读取、域前置防止溯源、源码替换编译混淆等文档+源码+全部资料+高分项目.zip
- 基于nem链的区块链汽车零配件溯源项目文档+源码+全部资料+高分项目.zip
- 基于SpringBoot框架的、基于国密算法与群签名的可溯源区块链模拟系统文档+源码+全部资料+高分项目.zip
- 基于lumen开发的微信小程序农场生态管理API设计,文档+源码+全部资料+高分项目.zip
- 基于vue2.0+vuex+vue-router+element-ui开发的农产品溯源系统后台文档+源码+全部资料+高分项目.zip
- 基于超级账本的简易牛奶溯源系统的区块链子系统实现文档+源码+全部资料+高分项目.zip
- 基于开发者平台的供应链溯源案例(网易云课程)文档+源码+全部资料+高分项目.zip
- 基于农产品溯源 基于fisco-bcos实现 分管理和商城两端文档+源码+全部资料+高分项目.zip
- 基于可视水印检测识别的数字媒体溯源应用系统,文档+源码+全部资料+高分项目.zip
- 基于区块链的供应链金融溯源系统文档+源码+全部资料+高分项目.zip
- 基于区块链(fabric)农产品溯源平台文档+源码+全部资料+高分项目.zip
- 基于区块链Hyperledger Fabric V2.5的农产品溯源商品通用溯源应用模板,部署简单,附压测工具、区块链浏览器,文档+源码+全部资料+高分项目.z
- 基于区块链的商品溯源系统文档+源码+全部资料+高分项目.zip
- 基于区块链的食品溯源系统文档+源码+全部资料+高分项目.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功