java 自带导出excel_4.java项目页面导出excel功能
用的是SSM框架,字段根据自己的业务需求改
1.前台页面
导出
/*导出按钮提交*/
function downloadExcel(){
$("#dynamicDownload").submit();
}
2.后台相关代码
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* 导出考勤记录
* @param request
* @param response
* @param model
*/
@RequestMapping(value="downloadExcel")
public void downLoadExcel(HttpServletRequest request,HttpServletResponse response,Model model){
try{
//1-查出要导出的数据
String user_id = request.getSession().getAttribute("user_id").toString();//获取保存登陆信息的员工id
HashMap paramMap = new HashMap();
String date_start1 = request.getParameter("inpstart");
String date_end1 = request.getParameter("inpend");
String userORname1 = request.getParameter("userORname");
String PART_NAME1 = request.getParameter("dId");
paramMap.put("date_start", date_start1);
paramMap.put("date_end", date_end1);
paramMap.put("userORname", userORname1);
paramMap.put("PART_NAME", PART_NAME1);
List> sourceRecordList=sourceRecordService.selectSourceRecordNotpage(paramMap);
//第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wk = new HSSFWorkbook();
//第二步,创建一个sheet表对象,创建row对象,getExcelStyle1是一个创建模板的方法,最后面有
HSSFSheet sheet = getExcelStyle1(wk,"考勤信息表");
HSSFRow row;
HSSFCellStyle style = wk.createCellStyle();
HSSFFont font = wk.createFont();
font.setFontName("微软雅黑");
font.setFontHeightInPoints((short)15);
style.setFont(font);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//第三步,查询出表内容放到map中
SimpleDateFormat sdf_out = new SimpleDateFormat("yyyyMMdd");
String time_out = sdf_out.format(new Date());
String srcPath=request.getSession().getServletContext().getRealPath("")+"/考勤信息"+time_out+".xls";//设置将excel数据上传至服务器的路径
for(int i=0;i
row=sheet.createRow(i+1);//从第二行还是导入数据
String USER_ID = sourceRecordList.get(i).get("USER_ID").toString();//查询列表中获取所需字段数据
String USER_NAME = sourceRecordList.get(i).get("USER_NAME").toString();
String PART_NAME = sourceRecordList.get(i).get("PART_NAME").toString();
String ATTENDANCETEAM_NAME = sourceRecordList.get(i).get("ATTENDANCETEAM_NAME").toString();
String POST_NAME = sourceRecordList.get(i).get("POST_NAME").toString();
String ATTENDANCE_DATE = sourceRecordList.get(i).get("ATTENDANCE_DATE").toString();
String ATTENDANCE_TIME = sourceRecordList.get(i).get("ATTENDANCE_TIME").toString();
String EQUIPMENT_ADDRESS = sourceRecordList.get(i).get("EQUIPMENT_ADDRESS").toString();
if(USER_ID !=null){
row.createCell((short)0).setCellValue(USER_ID);
}else{
row.createCell((short)0).setCellValue("");
}
if(USER_NAME !=null){
row.createCell((short)1).setCellValue(USER_NAME);
}else{
row.createCell((short)1).setCellValue("");
}
if(PART_NAME !=null){
row.createCell((short)2).setCellValue(PART_NAME);
}else{
row.createCell((short)2).setCellValue("");
}
if(ATTENDANCETEAM_NAME !=null){
row.createCell((short)3).setCellValue(ATTENDANCETEAM_NAME);
}else{
row.createCell((short)3).setCellValue("");
}
if(POST_NAME !=null){
row.createCell((short)4).setCellValue(POST_NAME);
}else{
row.createCell((short)4).setCellValue("");
}
if(ATTENDANCE_DATE !=null){
row.createCell((short)5).setCellValue(ATTENDANCE_DATE);
}else{
row.createCell((short)5).setCellValue("");
}
if(ATTENDANCE_TIME !=null){
row.createCell((short)6).setCellValue(ATTENDANCE_TIME);
}else{
row.createCell((short)6).setCellValue("");
}
if(EQUIPMENT_ADDRESS !=null){
row.createCell((short)7).setCellValue(EQUIPMENT_ADDRESS);
}else{
row.createCell((short)7).setCellValue("");
}
}
try {
FileOutputStream fout = new FileOutputStream(srcPath);//创建一个服务器管道地址
wk.write(fout);//把excel数据写到服务器中
//读服务器中的数据
File exportFile = new File(srcPath);
FileInputStream fs=null;
//告诉浏览器这次请求是一个下载的数据流
response.setContentType("APPLICATION/OCTET-STREAM");
fs=new FileInputStream(exportFile);
//ExportUtil是一个下载的工具类,后面会有
ExportUtil.download(response, fs, "考勤信息-"+time_out+".xls",null);
} catch (Exception e) {
e.printStackTrace();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 创建一个excel模板:里面有表头信息
*/
public HSSFSheet getExcelStyle1(HSSFWorkbook wk,String name){
HSSFSheet sheet = wk.createSheet(name);
//设置表的样式 新加一行
HSSFRow row1 = sheet.createRow((int) 0);
HSSFCellStyle style1 = wk.createCellStyle();
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font1 = wk.createFont();
font1.setFontName("微软雅黑");
font1.setFontHeightInPoints((short)12);
style1.setFont(font1);
row1.createCell((short)0).setCellValue("工号");
row1.createCell((short)1).setCellValue("姓名");
row1.createCell((short)2).setCellValue("部门");
row1.createCell((short)3).setCellValue("所属考勤组");
row1.createCell((short)4).setCellValue("岗位名称");
row1.createCell((short)5).setCellValue("日期");
row1.createCell((short)6).setCellValue("打卡时间");
row1.createCell((short)7).setCellValue("设备地址");
return sheet;
}
ExportUtil 下载的工具类
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
public class ExportUtil {
/**
* 导出文件
*
* @param response
* @param file
* 导出文件
* @param name
* @param contentType
* @throws IOException
*/
public static void download(HttpServletResponse response, File file,
String name, String contentType) throws IOException {
String fileName = StringUtils.isBlank(name) ? file.getName() : name;
download(response, new FileInputStream(file), fileName, contentType);
}
/**
* 下载数据/文件
*
* @param response
* HTTP输出
* @param inputStream
* 文件流
* @param fileName
* 文件名
* @param contentType
* ContentType in HTTP Header
* @throws IOException
* IO异常
*/
public static void download(HttpServletResponse response,
InputStream inputStream, String fileName, String contentType)
throws IOException {
response.setContentType(StringUtils.isEmpty(contentType) ? "application/octet-stream"
: contentType);
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(fileName.getBytes("gbk"), "ISO-8859-1"));
response.setStatus(HttpServletResponse.SC_OK);
BufferedInputStream reader = null;
try {
reader = new BufferedInputStream(inputStream);
IOUtils.copy(reader, response.getOutputStream());
} finally {
if (reader != null) {
reader.close();
}
if (inputStream != null) {
inputStream.close();
}
}
}
}
java 自带导出excel_4.java项目页面导出excel功能相关推荐
- java jsp导出pdf文件_JSP页面导出PDF格式文件
JSP页面导出PDF格式文件基本在前端页面可以全部完成 添加下载链接的点击事件 var downPdf = document.getElementById("downLoad"); ...
- Java自带日志工具java.util.logging.Logger
java.util.logging.Logger是JDK自带的日志工具类,从1.4版本开始就已经有了.由于log4j等开源的日志组件,这个Logger并没有太多展现机会.但在一些测试性的代码中,JDK ...
- aspx导出excel是html编码,导出Execl 系列: web页面导出到Excel乱码解决
引言: 前几天 在做web项目的时候 需要导出页面上的数据 到Excel里面 但有的时候出现乱码(有de时候不出现 很奇怪) 原来的代码是这样的: HttpContext.Curre ...
- public接口可以被任何一个类实现_一文带你深入Java核心技术:对象克隆+接口与回调,还有这种操作...
对象克隆 当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,如图6-1所示.这就是说,改变一个变量所引用的对象将会对另一个变量产生影响. Employee original = new Employ ...
- java自带发送邮件,成都汇智动力-java邮件发送只需要java自带的mailjar
原标题:成都汇智动力-java邮件发送只需要java自带的mailjar java邮件发送只需要java自带的mailjar Email email = emailService.queryEmail ...
- java word导出带背景_Java 用Freemarker完美导出word文档(带图片)
前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject ...
- Java项目如何导出数据为 PDF 文件?
文章目录 Java项目如何导出数据为 PDF 文件? 一.代码结构如下 二.代码说明 1.添加依赖 pom.xml 3.添加字体 4.PDF 导出工具类 三.效果图 结语 Java项目如何导出数据为 ...
- 阿里开源(EasyExcel):使用Java将数据导出为Excel表格、带样式----》java web下载 Excel文件
目录 一.技术选型 二.实现过程 1.导入依赖 2.编写工具类 EasyExcelUtil 3.公用参数类 EasyExcelParams 4.表格样式实体类 MyWriteHandler 5.数据实 ...
- eclipse怎么导出一个Java项目(莫要错过,最详细教程!)
导入项目教程链接-->传送门 第一步 点击File->Export,如下图所示: 第二步 点击General->Archive File,点击next,如下图所示: 第三步勾选项目, ...
最新文章
- 为什么在C中需要使用volatile?
- win7计算机怎么找管理员,Win7系统Administrator不见了怎么解决?
- IOS15之优雅的使用UITableView
- TensorFlow 2.0 mnist手写数字识别(CNN卷积神经网络)
- 浅析crontab命令
- yarn logs -applicationId 无法导出logs日志 Log aggregation has not completed or is not enabled.
- calendar控件使用 extjs_extjs年月选择日历及通用js同步ajax调用返回json object
- 反序列化时出现“base-64 字符数组的无效长度”错误提示的解决
- python 学习笔记7(装饰器)
- asp导出word中文乱码_你还在加班吗?“蟒蛇”办公自动化Word篇——一招搞定300页文档
- java session超时判断_详解SpringBoot中Session超时原理说明
- 链表实现直接选择排序
- ERP生产线管理系统 with WAMP
- java找最长连续号段,字符串—寻找最长连续子串
- 2021年更新:火爆全网的抖音“蚂蚁牙黑”视频制作实战,附软件
- 同事辞职了,我一个人做两个人的活,公司又不招人了,该怎么办?
- 推荐 6 个本月 yyds 的开源项目
- 1.关于tomcat的startup.bat文件闪退,而日志文件没有任何信息
- 省一级计算机ppt,江苏省计算机一级PPT课件.ppt
- 史玉柱亲笔写的脑白金策划方案
热门文章
- K8S精华问答 | 应用和运行时平台是怎样解耦的?
- 苹果WWDC前瞻之iOS 13更新最受关注;微软发布基于区块链的去中心化身份识别系统;小米成立了新集团质量办公室……...
- 构造函数的原型和原型链
- 三菱m70刀杯上下m代码_加工中心常用G代码和M代码大全,收藏好了
- vue vant Area组件使用详解
- TortoiseGit 将工作区变动文件提交本地仓库_入门试炼_04
- IntelliJ IDEA 2020 快捷键私人订制
- Java-自定义注解
- Java-Super
- JS中split对多个分隔符的处理