员工签到表
一、准备poi
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给java程序对Microsoft Office格式档案读和写的功能。
二、修改视图层,给导出按键添加单击事件
//给导出按钮绑定单击事件
$("#btn2").click(function(){
alert("1");
//获取三个查询条件的值
var empId = $("#empId").val();
var deptno = $("#deptno").val();
var dtDate = $("#dtDate").val();
//访问指定的Servlet而不是用ajax,因为ajax是通过回调函数处理结果的,导出返回的是流,所以也不用转发和重定向
location.href="servlet/DutyServlet?method=exportXls&empId="+empId+"&deptno="+deptno+"&dtDate="+dtDate;
});
三、servlet添加exportEls和createexcel方法
//导出XLS
public void exportXls(HttpServletrequest request, HttpServletresponse response)
throws ServletException, IOException {
//获取请求中的信息
String empId=request.getparameter("empId");
String sdeptno=request.getParameter("deptno");
int deptno=0;
try {
deptno=integer.parseInt(sdeptno);
} catch (numberformatexception e) {
// TODO: handle exception
e.printstacktrace();
}
String sdtDate=request.getParameter("dtDate");
java.sql.Date dtDate=null;
try {
dtDate=java.sql.Date.valueOf(sdtDate);
} catch (runtimeexception e) {
// TODO: handle exception
e.printStackTrace();
}
//调用业务层完成业务操作
DutyService dutyService=new DutyServiceImpl();
List<Duty> dutyList=dutyService.findDuty(empId,deptno,dtDate);
//导入到Xls中
createExcel(dutyList,response);
}
private static void createExcel(List<Duty> list,HttpServletResponse response) {
// 创建一个Excel文件
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个工作表
HSSFSheet sheet = workbook.createSheet("考勤信息");
CellRangeAddress region = new CellRangeAddress(0, // first row
0, // last row
0, // first column
2 // last column
);
sheet.addMergedRegion(region);
HSSFRow hssfRow = sheet.createRow(0);
HSSFCell headCell = hssfRow.createCell(0);
headCell.setCellValue("考勤信息");
// 设置单元格格式居中
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
headCell.setCellStyle(cellStyle);
// 添加表头行
hssfRow = sheet.createRow(1);
// 添加表头内容
headCell = hssfRow.createCell(0);
headCell.setCellValue("用户名");
headCell.setCellStyle(cellStyle);
headCell = hssfRow.createCell(1);
headCell.setCellValue("真实姓名");
headCell.setCellStyle(cellStyle);
headCell = hssfRow.createCell(2);
headCell.setCellValue("所属部门");
headCell.setCellStyle(cellStyle);
headCell = hssfRow.createCell(3);
headCell.setCellValue("出勤日期");
headCell.setCellStyle(cellStyle);
headCell = hssfRow.createCell(4);
headCell.setCellValue("签到时间");
headCell.setCellStyle(cellStyle);
headCell = hssfRow.createCell(5);
headCell.setCellValue("签退时间");
headCell.setCellStyle(cellStyle);
// 添加数据内容
for (int i = 0; i < list.size(); i++) {
hssfRow = sheet.createRow((int) i + 2);
Duty duty = list.get(i);
// 创建单元格,并设置值
HSSFCell cell = hssfRow.createCell(0);
cell.setCellValue(duty.getEmp().getEmpId());
cell.setCellStyle(cellStyle);
cell = hssfRow.createCell(1);
cell.setCellValue(duty.getEmp().getRealName());
cell.setCellStyle(cellStyle);
cell = hssfRow.createCell(2);
cell.setCellValue(duty.getEmp().getDept().getDeptname());
cell.setCellStyle(cellStyle);
cell = hssfRow.createCell(3);
cell.setCellValue(duty.getDtDate());
cell.setCellStyle(cellStyle);
cell = hssfRow.createCell(4);
cell.setCellValue(duty.getSigninTime());
cell.setCellStyle(cellStyle);
cell = hssfRow.createCell(5);
cell.setCellValue(duty.getSignoutTime());
cell.setCellStyle(cellStyle);
}
// 保存Excel文件
try {
response.setcontenttype("APPlication/vnd.ms-excel");
response.setheader("content-Disposition", "attachment;filename=duty.xls");//附件形式下载,文件名叫duty.xls
//outputstream outputStream = new FileOutputStream("D:/duty.xls");//保存到本地(服务器端)
OutputStream outputStream = response.getOutputStream(); //写到客户端
workbook.write(outputStream);
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
四、运行图
文章最后发布于: 2019-08-19 22:36:11
相关阅读
【Android】Phoenix OS(凤凰系统)启用root权限
最新版(2.5.9.64)的Phoenix OS将开发者选项中的root权限开关去掉了,本篇教程的来源是XDA论坛的[Root] How to root Phoenix OS wit
c语言实现霍夫曼树 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { char value; int weight;
消息队列的实现方式有很多种,比如有专业的rabbitmq,rocketmq,kafka等,这些mq提供了非常专业的功能实现异步发送,而且这些接入又比较
现在的科技在飞速的发展,网站后台程序经过几十年的发展已经越来越成熟,网站程序从原来的内部使用变成付费购买,再到如今演变成的完全
越来越多的企业注重自身的品牌形象,在实体店形象升级改造的同时,企业也不会放过网络这一块大蛋糕。那么,做网站便是企业的需求了。但