SSM项目,关于如何导出数据
来源:互联网 发布:北京网络地板生产厂家 编辑:程序博客网 时间:2024/06/07 05:48
我这个项目是在maven上的,jar包应该就是poi
其中 用到一些BootStrap的标签,不知道为什么用,可能是方便吧(反正是老师让用的)
BootSrtap可以在http://www.runoob.com/bootstrap/bootstrap-helper-classes.html这个网站中学习
具体就是首先全部显示的每一条数据,在前面加一个checkbox,然后进行写全选按钮(代码省略)
jsp中
<div class="input-group line left" id="left">
<a href="#" class="btn btn-primary btn-sm"
data-url='<%=path%>/down.xls' data-toggle="modal"
data-target="#addClass" data-back='<%=path%>/infolist'
onclick="importExcel(this)">Excel导出</a>
</div>
ajax
function importExcel(obj){
var chk_value = [];
$('input[name="uID"]:checked').each(function(){
chk_value.push($(this).val());
});
if(chk_value.length==0 ||chk_value==null){
alerts('提示!','请选择需要导出的数据');
}else{
$.confirm({
title:'导出Excel表格',
content:'确定导出选中的内容?',
confirmButton:'确定',
confirm:function(){
/*$(obj).load($(obj).data("url"),{"chk_value":chk_value});*/
window.location.href=$(obj).data("url")+"?chk_value="+chk_value;
},
cancelButton:'取消',
cancel:function(){
location.reload();
alters('取消','您已取消对选中信息的Excel文件的下载');
}
});
}
}
(其中check就是选中的那些列表的ID,以便于重数据库查询)
之后跳转控制层
@RequestMapping(value = "down.xls")
@ResponseBody
public void down(String filename, HttpServletRequest request,
HttpServletResponse response, @ModelAttribute("user")User user,
ModelMap mp, Page page) throws Exception {
// 设置响应是一个可下载文件固定写法
System.out.println("***************************************************************************************");
response.setContentType("application/x-execl");
// 设置文件的下载名称
// 设置响应文件配置
response.setHeader("Content_Disposition", "attachment;filename=" +new String("论文信息表.xls".getBytes(),"ISO-8859-1"));
Calendar now = Calendar.getInstance();
int year=now.get(Calendar.YEAR);
System.out.println("年: " + year);
CellRangeAddress cellRangeAddress=new CellRangeAddress(0,0,0,9);
String dd = request.getParameter("chk_value");
String a[] = dd.split(",");
List<PageData> list = new ArrayList<PageData>();
for (int i = 0; i < a.length; i++) {
PageData pd = this.getPageData();
pd = infoService.getPageDataById(Integer.parseInt(a[i]));
list.add(pd);
}
System.out.println("***********************************");
for (PageData pageData : list) {
System.out.println(pageData);
}
System.out.println("***********************************");
// 声明一个Excel表格
HSSFWorkbook wb = new HSSFWorkbook();
// 设置表单的居中格式
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
//字体
HSSFFont font=wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontHeightInPoints((short)10);
style.setFont(font);
HSSFCellStyle style1 = wb.createCellStyle();
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
//字体
HSSFFont font1=wb.createFont();
font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font1.setFontHeightInPoints((short)16);
style1.setFont(font1);
// 然后就是开始创建表头,还有表中的数据
// 声明Exceln表名
HSSFSheet sheet = wb.createSheet(year+"毕业生毕业论文题目汇总表");
// 然后在表明中创建第一行
sheet.addMergedRegion(cellRangeAddress);
//设置一个标题,并对标题就是命名,这里边加了一个年限
HSSFRow row1=sheet.createRow(0);
HSSFCell cell1=row1.createCell(0);
cell1.setCellStyle(style1);
cell1.setCellValue(year+"年毕业生毕业论文题目汇总表");
HSSFRow row = sheet.createRow(1);// 首先在创建第一行
String[] title={"编号","学院","班级","论文类型","论文题目","学号","姓名","导师","联系方式","备注"};
HSSFCell cell = row.createCell(1);
for(int i=0;i<title.length;i++){
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}
//设置每列的宽度是多少个字符宽度
sheet.setColumnWidth(0, 5 * 256);
sheet.setColumnWidth(1, 18 * 256);
sheet.setColumnWidth(2, 25 * 256);
sheet.setColumnWidth(4, 35 * 256);
sheet.setColumnWidth(5, 14 * 256);
sheet.setColumnWidth(8, 14 * 256);
sheet.setColumnWidth(9, 45 * 256);
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i+2);
PageData pd=list.get(i);
row.createCell(0).setCellValue(i);
row.createCell(1).setCellValue(pd.getString("CollegeName"));
row.createCell(2).setCellValue(pd.getString("classname"));
row.createCell(3).setCellValue(pd.getString("TypeCode"));
row.createCell(4).setCellValue(pd.getString("Topic"));
row.createCell(5).setCellValue(pd.getString("StudentID"));
row.createCell(6).setCellValue(pd.getString("sname"));
row.createCell(7).setCellValue(pd.getString("Name"));
row.createCell(8).setCellValue(pd.getString("phone"));
row.createCell(9).setCellValue(pd.getString("Note"));
}
ServletOutputStream out = response.getOutputStream();
wb.write(out);
out.close();
}
这里service层和xml就省略了
- SSM项目,关于如何导出数据
- SSM项目关于如何下载图片
- ssm导出列表数据
- SSM项目导出Excel操作
- SSM数据库数据导出excel
- 关于ssm框架项目,如何进行注解方式异常处理——@ExceptionHandler
- ssm导出
- ssm导出
- mysql如何导出数据
- SSM项目-医药采购-06 数据字典
- SSM项目-医药采购-08 药品目录导出
- 前后台数据如何交互(SSM)
- java SSM框架中使用aspose-words导出数据
- wincc项目归档数据导出
- 关于MySQL数据导出导入
- 关于导出数据到记事本
- 关于如何记忆导出Excel
- oracle 如何导出数据字典
- MySQL-Cluster 7.3.2 安装和配置
- KAFKA知识(Consumer)
- 3DSlicer21:Windows7+VisualStudio2013构建3DSlicer史上最详细版(Debug)
- VS导入lib库设置方法
- 一篇文章,教你学会Git
- SSM项目,关于如何导出数据
- 关于线段树的作用与其他数据结构的替代
- ImageView的scaleType属性
- MySql错误代码1045的解决方案
- 8.14-集体智慧编程-4-提供推荐--未完
- FastDFS分布式文件系统
- CodeForces-820D Mister B and PR Shifts
- 关于会议
- Python Study (05)装饰器