SSM项目,关于如何导出数据
2017-08-25 09:22
387 查看
我这个项目是在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
4000
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就省略了
其中 用到一些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
4000
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项目关于如何下载图片
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何把处理好后的数据导出Excel文件中(含背景\字体颜色设置)
- 关于ssm框架项目,如何进行注解方式异常处理——@ExceptionHandler
- 关于SQL数据库中的数据到如何导出--SQL2000导入到SQL2008中
- 如何编程实现VB.NET数据集中的数据导出到EXCEL
- 在winform开发中如何把datagrid里面的数据导出成EXCEL文件
- 如何把数据导出成Excel
- 如何将数据表导出备份到excel表格
- 如何在VB中把表的数据定时导出到EXCELL表中?
- 关于Excel中的数据如何导入到oracle数据库中.
- 关于如何从多个项目创建 ASP.NET 应用程序以进行组开发问题
- 关于如何做项目经理的反思
- ASP.NET 2.0:如何让DropDownList同时拥有数据来源项目与自订项目
- ASP.NET 2.0:如何让DropDownList同时拥有数据来源项目与自订项目
- 工作流项目中关于imp/exp导入导出命令工具的部分应用方式!
- 关于mysql数据的导出(http://blog.csdn.net/davidullua/services/trackbacks/21982.aspx )
- 如何建立一个灵活的、可配置的导出数据到Excel的解决方案。
- 如何把DataTable里的数据导出到硬盘的XML文件去。
- 关于sqlserver的数据导入导出
- 如何使用VB调用DTS进行数据的导入、导出