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. .DS_Store 文件是什么?Mac下面如何禁止.DS_Store生成

    .DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini. 1,禁止.DS_store生成:打开 “终端” ,复制黏贴下 ...

  2. bzoj 4278 Tasowanie 后缀数组+贪心

    题目大意 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T.\(len \leq 200000\) 题解 我们从归并排序的角度去想,每次把两者之一较小的取出来 ...

  3. BZOJ1018:[SHOI2008]堵塞的交通

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...

  4. TreeView滚动TreeViewItem

    今天帮忙修了一个bug, 在拖动TreeViewItem时,需要滚动TreeView向前翻页,或向后翻页. 思路: 1.找到TreeView控件里的ItemsControl 2.找到ItemsCont ...

  5. nginx web端口映射

    nginx web端口映射 举例: 问:在一台有外网的宿主机上部署了一个kvm虚拟机,在虚拟机上部署了web,需要外网访问此web,但虚拟机只有内网ip,只和宿主机通,怎么实现外网访问web服务? 答 ...

  6. linux查询内存真是利用率

    使用top工具查看到Suse Linux的内存占用率很大,可能97%以上,我知道这是Linux的内存使用机制,先将内存整个管理起来,需要的时候在分配给单个进程.但是如果我需要查看系统真实的内存占用率应 ...

  7. 关于java基础中,接口里面父类的对象指向子类的引用

    父类的引用指向子类的对象,它只能看的到父类的那些方法~ 子类自身的方法看不到-- ······························· 如: interface Singer { //定义了 ...

  8. USB相关资料

    http://www.usb.org/developers/defined_class/#BaseClass00h http://blog.csdn.net/lizzywu/article/detai ...

  9. 下载win7/win8/win10镜像

    关于给电脑换系统,很多人会花钱去电脑店里换,或者是下载Ghost系统.但这些系统都不是微软原版的,制作者已经集成了很多常用软件或垃圾软件进去.我在这给大家介绍的是如何下载正版的Windows系统.这个 ...

  10. Linux绘图函数

    gdk_draw_line () gdk_draw_rectangle () gdk_draw_arc () gdk_draw_polygon () gdk_draw_string () gdk_dr ...