action中的方法

  /**
* Excel文件下载处理
* @return
*/
@RequestMapping("/downloanExcel")
public ModelAndView downloanExcel(){
List<AuContract> list = new ArrayList<AuContract>(); list= service.findAuContractList();//获得数据库所有的合同集合
Map<String,List<AuContract>> map = new HashMap<String, List<AuContract>>();
map.put("infoList", list);
ExcelView ve = new ExcelView();
return new ModelAndView(ve,map);
} excel操作工具类 ExcelView package com.ekyb.common.auContract.action; import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.springframework.web.servlet.view.document.AbstractExcelView; import com.ekyb.common.auContract.entity.AuContract;
import com.ekyb.common.util.CharEncodingEdit; /**
* 下载Excel视图
*
* @author gx
*/
public class ExcelView extends AbstractExcelView { @SuppressWarnings("static-access")
protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception { @SuppressWarnings("unchecked")
List<AuContract> list = (List<AuContract>) model.get("infoList"); HSSFFont font= workbook.createFont();
font.setFontHeightInPoints((short)12); //设置字体的大小
font.setFontName("微软雅黑"); //设置字体的样式,如:宋体、微软雅黑等
font.setItalic(false); //斜体true为斜体
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //对文中进行加粗
font.setColor(HSSFColor.PINK.index); //设置字体的颜色
HSSFCellStyle style = workbook.createCellStyle();
style.setFont(font); if (list != null && list.size() != 0) {
int length = list.size();
Sheet sheet = workbook.createSheet(); // 第一行文字说明
Row row = sheet.createRow(0);
Cell cell = row.createCell(0, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("合同名称"); cell = row.createCell(1, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("合同单位"); cell = row.createCell(2, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("合同登记时间"); cell = row.createCell(3, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("合同金额"); cell = row.createCell(4, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("履行方式"); cell = row.createCell(5, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("合同类型"); cell = row.createCell(6, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("开始时间"); cell = row.createCell(7, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("结束时间"); cell = row.createCell(8, Cell.CELL_TYPE_STRING);
cell.setCellStyle(style);
cell.setCellValue("备注"); // 下面是具体内容
for (int i = 0; i < length; i++) {
sheet.setColumnWidth((short) i, (short) (35.7 * 100));
row = sheet.createRow(i + 1);
// 合同名称
cell = row.createCell(0, cell.CELL_TYPE_STRING);
cell.setCellValue(list.get(i).getName());
// 合同单位
cell = row.createCell(1, cell.CELL_TYPE_STRING);
cell.setCellValue(list.get(i).getUnit()); // 合同登记时间
cell = row.createCell(2, cell.CELL_TYPE_STRING);
cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(list.get(i).getReg_time())); // 合同金额
cell = row.createCell(3, cell.CELL_TYPE_STRING);
//把float对象转换为String对象
float con_money=list.get(i).getCon_money();
String str =String.valueOf(con_money);
cell.setCellValue(str); // 合同履行方式
cell = row.createCell(4, cell.CELL_TYPE_STRING);
cell.setCellValue(list.get(i).getPerform_style()); // 合同类型
cell = row.createCell(5, cell.CELL_TYPE_STRING);
cell.setCellValue(list.get(i).getCon_type()); // 开始时间
cell = row.createCell(6, cell.CELL_TYPE_STRING);
cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(list.get(i).getCon_start_time())); // 结束时间
cell = row.createCell(7, cell.CELL_TYPE_STRING);
cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(list.get(i).getCon_end_time())); // 备注
cell = row.createCell(8, cell.CELL_TYPE_STRING);
cell.setCellValue(list.get(i).getRemark());
} //web浏览通过MIME类型判断文件是excel类型
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setCharacterEncoding("utf-8"); // 对文件名进行处理。防止文件名乱码
String fileName = CharEncodingEdit.processFileName(request, "合同.xls");
// Content-disposition属性设置成以附件方式进行下载
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
OutputStream os = response.getOutputStream();
workbook.write(os);
os.flush();
os.close();
}
}
} jsp页面代码用的是jQueryUI <a href="<%=basePath%>/auContract/downloanExcel" class="easyui-linkbutton"data-options="plain:'true',iconCls:'icon-down'">下载Excel</a> //可以直接通过a标签的href直接连接到action中的url映射地址

Java浏览器下载文件为excel(springMVC方式)的更多相关文章

  1. asp.net 浏览器下载文件的四种方式

    // 方法一:TransmitFile实现下载 protected void Button1_Click(object sender, EventArgs e) { Response.ContentT ...

  2. 【文件下载】Java下载文件的几种方式

    [文件下载]Java下载文件的几种方式  摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...

  3. Asp.Net 下载文件的几种方式

    asp.net下载文件几种方式 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法 ...

  4. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  5. Microsoft Edge浏览器下载文件乱码修复方法(二)

    之前有写过"Microsoft Edge浏览器下载文件乱码修复方法",发现很多情况下下载文件乱码问题还是存在,这里对之前内容做简单补充,希望可以帮到大家. 方法二: 默认如果提示下 ...

  6. 从后端接口下载文件的2种方式:get方式、post方式

    从后端接口下载文件的2种方式 一.get方式 直接使用: location.href='http://www.xxx.com/getFile?params1=xxx&params2=xxxx' ...

  7. 火狐浏览器下载文件中文乱码,文件名中的空格变加号("+")的问题

    解决一下问题: 1.火狐浏览器下载文件,中文变乱码 2.IE浏览器下载文件,丢失文件扩展名或强制扩展名为".txt" 3.浏览器下载文件,文件名中的空格变成加号("+&q ...

  8. 在Linux终端使用W3M浏览器下载文件

    在Linux终端使用W3M浏览器下载文件 W3M 是3个基于Linux系统命令行的WEB网站浏览工具(w3m/Links/Lynx) 对于需要验证cookie 和来源的页面,比如163的超大附件,直接 ...

  9. IE浏览器下载文件保存时提示:“你没有权限在此位置中保存文件”解决办法

    E浏览器下载文件保存时提示 解决办法: 1.Win + R,打开运行命令,输入gpedit.msc,如图所示 2.打开计算机本地组策略编辑器:选择计算机配置-windows设置-安全设置-本地策略-安 ...

随机推荐

  1. linux 加载raid驱动

    Driver Disk Installation Guide for ARC-11XX/ARC12XX/ARC16XX/18XX RAID Controller on RHEL 5.11 or Cen ...

  2. poj1325机器工作——二分图最小点覆盖

    题目:http://poj.org/problem?id=1325 二分图求最大匹配,即为最小点覆盖: 一开始我写得较麻烦,求出最大匹配又去搜增广路,打标记求最小点覆盖: 然而两种方法都没写“ans= ...

  3. React-Redux之API

    connect([mapStateToProps], [mapDispatchToProps], [mergeProps],[options]) 连接 React 组件与 Redux store. 连 ...

  4. [hdu2874]Connections between cities(LCA+并查集)

    题意:n棵树,求任意两点的最短距离. 解题关键:并查集判断两点是否位于一棵树上,然后求最短距离即可.此题可以直接对全部区间直接进行st表,因为first数组会将连接的两点的区间表示出来. //#pra ...

  5. css3中变形处理

    transfrom功能 在css3 中可以使用transfrom功能实现文字或图像的旋转,缩放,倾斜,移动等变形处理 deg是css3中使用的一种角度单位. 旋转: 使用rotate方法,在参数中加入 ...

  6. 86标准SQL与92标准SQL用法区别

    86标准SQL与92标准SQL用法区别 在开发Oracle 9i时, 数据库还时间了ANSL SQL/92标准的链接语法, 在书中建议在使用Oracle 9i及更高版本时,应该使用SQL/92标准的语 ...

  7. day4 函数重载

    函数的重载 1.函数重载的定义:在同一个类中,有一个以上的同名函数,只要函数的参数列表或参数类型不一样即可,与返回值无关, 这些统称为方法的重载. 2.函数的重载存在的原因:为了增强方法的阅读性,优化 ...

  8. linux下gsoap的初次使用 -- c风格加法实例

    摘自: http://blog.csdn.net/jinpw/article/details/3346844 https://www.cnblogs.com/dkblog/archive/2011/0 ...

  9. L2-013. 红色警报 (并查集)

    战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不 ...

  10. cassandra的命令

    cassandra的命令: connect <hostname>/<port> (<username> '<password>')?;    Conne ...