用的是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功能相关推荐

  1. java jsp导出pdf文件_JSP页面导出PDF格式文件

    JSP页面导出PDF格式文件基本在前端页面可以全部完成 添加下载链接的点击事件 var downPdf = document.getElementById("downLoad"); ...

  2. Java自带日志工具java.util.logging.Logger

    java.util.logging.Logger是JDK自带的日志工具类,从1.4版本开始就已经有了.由于log4j等开源的日志组件,这个Logger并没有太多展现机会.但在一些测试性的代码中,JDK ...

  3. aspx导出excel是html编码,导出Execl 系列: web页面导出到Excel乱码解决

    引言:  前几天 在做web项目的时候 需要导出页面上的数据 到Excel里面 但有的时候出现乱码(有de时候不出现 很奇怪) 原来的代码是这样的:         HttpContext.Curre ...

  4. public接口可以被任何一个类实现_一文带你深入Java核心技术:对象克隆+接口与回调,还有这种操作...

    对象克隆 当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,如图6-1所示.这就是说,改变一个变量所引用的对象将会对另一个变量产生影响. Employee original = new Employ ...

  5. java自带发送邮件,成都汇智动力-java邮件发送只需要java自带的mailjar

    原标题:成都汇智动力-java邮件发送只需要java自带的mailjar java邮件发送只需要java自带的mailjar Email email = emailService.queryEmail ...

  6. java word导出带背景_Java 用Freemarker完美导出word文档(带图片)

    前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject ...

  7. Java项目如何导出数据为 PDF 文件?

    文章目录 Java项目如何导出数据为 PDF 文件? 一.代码结构如下 二.代码说明 1.添加依赖 pom.xml 3.添加字体 4.PDF 导出工具类 三.效果图 结语 Java项目如何导出数据为 ...

  8. 阿里开源(EasyExcel):使用Java将数据导出为Excel表格、带样式----》java web下载 Excel文件

    目录 一.技术选型 二.实现过程 1.导入依赖 2.编写工具类 EasyExcelUtil 3.公用参数类 EasyExcelParams 4.表格样式实体类 MyWriteHandler 5.数据实 ...

  9. eclipse怎么导出一个Java项目(莫要错过,最详细教程!)

    导入项目教程链接-->传送门 第一步 点击File->Export,如下图所示: 第二步 点击General->Archive File,点击next,如下图所示: 第三步勾选项目, ...

最新文章

  1. 为什么在C中需要使用volatile?
  2. win7计算机怎么找管理员,Win7系统Administrator不见了怎么解决?
  3. IOS15之优雅的使用UITableView
  4. TensorFlow 2.0 mnist手写数字识别(CNN卷积神经网络)
  5. 浅析crontab命令
  6. yarn logs -applicationId 无法导出logs日志 Log aggregation has not completed or is not enabled.
  7. calendar控件使用 extjs_extjs年月选择日历及通用js同步ajax调用返回json object
  8. 反序列化时出现“base-64 字符数组的无效长度”错误提示的解决
  9. python 学习笔记7(装饰器)
  10. asp导出word中文乱码_你还在加班吗?“蟒蛇”办公自动化Word篇——一招搞定300页文档
  11. java session超时判断_详解SpringBoot中Session超时原理说明
  12. 链表实现直接选择排序
  13. ERP生产线管理系统 with WAMP
  14. java找最长连续号段,字符串—寻找最长连续子串
  15. 2021年更新:火爆全网的抖音“蚂蚁牙黑”视频制作实战,附软件
  16. 同事辞职了,我一个人做两个人的活,公司又不招人了,该怎么办?
  17. 推荐 6 个本月 yyds 的开源项目
  18. 1.关于tomcat的startup.bat文件闪退,而日志文件没有任何信息
  19. 省一级计算机ppt,江苏省计算机一级PPT课件.ppt
  20. 史玉柱亲笔写的脑白金策划方案

热门文章

  1. K8S精华问答 | 应用和运行时平台是怎样解耦的?
  2. 苹果WWDC前瞻之iOS 13更新最受关注;微软发布基于区块链的去中心化身份识别系统;小米成立了新集团质量办公室……...
  3. 构造函数的原型和原型链
  4. 三菱m70刀杯上下m代码_加工中心常用G代码和M代码大全,收藏好了
  5. vue vant Area组件使用详解
  6. TortoiseGit 将工作区变动文件提交本地仓库_入门试炼_04
  7. IntelliJ IDEA 2020 快捷键私人订制
  8. Java-自定义注解
  9. Java-Super
  10. JS中split对多个分隔符的处理