// js 触发导出 excel 方法  导出当前页的数据 含有条件查询的结果
// js 框架使用的 是 easyui
function doExport(){ var optins = $("#grid").datagrid("getPager").data("pagination").options;
var page = optins.pageNumber;
var rows = optins.pageSize;
var cpname=$("#cpname_id").val();
var adname=$("#adname_id").val();
var start = $("#start_id").val();
var end = $("#end_id").val();
$("<form>").attr({
"action":"${ctx}/rest/trafficbill/doexporttrafficaccount",
"method":"POST"
}).append("<input type='text' name='page' value='"+page+"'/>")
.append("<input type='text' name='cpname' value='"+cpname+"'/>")
.append("<input type='text' name='adname' value='"+adname+"'/>")
.append("<input type='text' name='startTime' value='"+start+"'/>")
.append("<input type='text' name='endTime' value='"+end+"'/>")
.append("<input type='text' name='rows' value='"+rows+"'/>").submit();
} // poi 操作 excel 的 工具类 package com.manage.util; import java.util.Date;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.web.servlet.view.document.AbstractExcelView; import com.pojo.subaccount.PageData; /**
*
* @author jemond
*
* 2015年6月26日上午9:42:48
*/
public class ObjectExcelView extends AbstractExcelView{ @SuppressWarnings("deprecation")
@Override
protected void buildExcelDocument(Map<String, Object> model,
HSSFWorkbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception { Date date = new Date();
String filename = Tools.date2Str(date, "yyyyMMddHHmmss");
HSSFSheet sheet;
HSSFCell cell;
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
sheet = workbook.createSheet("sheet1"); @SuppressWarnings("unchecked")
List<String> titles = (List<String>) model.get("titles");
int len = titles.size();
HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式
headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont headerFont = workbook.createFont(); //标题字体
headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headerFont.setFontHeightInPoints((short)11);
headerStyle.setFont(headerFont);
short width = 20,height=25*20;
sheet.setDefaultColumnWidth(width);
for(int i=0; i<len; i++){ //设置标题
String title = titles.get(i);
cell = getCell(sheet, 0, i);
cell.setCellStyle(headerStyle);
setText(cell,title);
}
sheet.getRow(0).setHeight(height); HSSFCellStyle contentStyle = workbook.createCellStyle(); //内容样式
contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
@SuppressWarnings("unchecked")
List<PageData> varList = (List<PageData>) model.get("varList");
int varCount = varList.size();
for(int i=0; i<varCount; i++){
PageData vpd = varList.get(i);
for(int j=0;j<len;j++){
String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : "";
cell = getCell(sheet, i+1, j);
cell.setCellStyle(contentStyle);
setText(cell,varstr);
} } } } // controller 导出excel @RequestMapping("/doexporttrafficaccount")
public ModelAndView doExportTrafficAccount(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "rows", defaultValue = "30") Integer rows,String cpname,String adname,String startTime,String endTime) throws Exception { // 构造一个查询条件
TvgameBillingTraffic tbt = new TvgameBillingTraffic(); if(StringUtils.isNotBlank(cpname)){
tbt.setCpname(cpname);
}
if(StringUtils.isNotBlank(adname)){
tbt.setAdname(adname);
}
if(StringUtils.isNotBlank(startTime)){
tbt.setStartTime(DateFormatUtil.dateToStartTime(startTime));
}
if(StringUtils.isNotBlank(endTime)){
tbt.setEndTime(DateFormatUtil.dateToEndTime(endTime)); }
// 得到 当前页的所有数据
EasyUIResult account = this.trafficAccountService.queryTrafficAccount(page, rows, tbt); @SuppressWarnings({"unchecked"})
List<TvgameBillingTraffic> userList = (List<TvgameBillingTraffic>)account.getRows(); // 封装 excel 参数
try { // 参数 MAP
Map<String, Object> dataMap = new HashMap<String, Object>(); // 设置标题
List<String> titles = new ArrayList<String>();
titles.add("账务编号"); //
titles.add("CP名称"); //
titles.add("计费策略"); //
titles.add("流量名称"); //
titles.add("计价金额"); //
titles.add("流量流水"); //
titles.add("创建时间"); //
titles.add("结算状态"); //
dataMap.put("titles", titles); // 存放内容的集合
List<PageData> varList = new ArrayList<PageData>(); for (TvgameBillingTraffic p : userList) {
PageData vpd = new PageData();
vpd.put("var1", String.valueOf(p.getId())); //
vpd.put("var2", p.getCpname()); //
vpd.put("var3", p.getChargingname()); //
vpd.put("var4", p.getAdname()); //
vpd.put("var5", String.valueOf(p.getPrice())); //
vpd.put("var6", p.getTraffic()); // 6 // 格式化时间 存在数据库是 毫秒 值
long createTime = p.getCreateTime();
String data = DateFormatUtils.getData(createTime);
vpd.put("var7", data); // 7 // 格式化结算状态 存在数据 是 0 或1
String settString = "" ;
byte settlement = p.getSettlement();
if(settlement == 0){
settString = "未结算";
}else if (settlement == 1) { settString = "已经结算";
}else{
settString = "未知状态";
}
vpd.put("var8", settString); //
varList.add(vpd);
} dataMap.put("varList", varList); // 执行excel操作 是一个视图
ObjectExcelView erv = new ObjectExcelView();
ModelAndView mv = new ModelAndView(erv, dataMap);
return mv;
} catch (Exception e) {
LOGGER.error("错误");
return null;
} } // 操作时间的 工具类 /**
*
* @author jemond
*
* 2015年6月20日上午9:42:48
*/
package com.common.util; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class DateFormatUtils { public static int getSecond(){
String secondStr = String.valueOf(System.currentTimeMillis());
String second = secondStr.substring(0,secondStr.length()-3);
return Integer.valueOf(second);
} public static String getData(long time){
time = time * 1000 ;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(new Date(time));
return format;
} public static String getDateShout(long time){
time = time * 1000 ;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(new Date(time));
return format;
} public static long getDateByLong(){ SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
long time=0;
try { Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, - 7);
Date monday = c.getTime();
String preMonday = sdf.format(monday); time=sdf.parse(preMonday).getTime()/1000; } catch (ParseException e) { e.printStackTrace();
}
return time; } /*public static void main(String[] args) {
Float p = 565654656565656645645645454564.2265665656f;
System.out.println(getData(1435547609)+"=="+p); }*/
} // spring mvc 的 部分 配置
<!-- 配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/views/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
<!-- 查找顺序 -->
<!-- <property name="order" value="2"/> -->
</bean> <!-- 定义Excel视图对象 -->
<!-- <bean name="utilView" class="com.manage.util.ObjectExcelView "/> 定义,根据bean的名称查找视图
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
查找顺序
<property name="order" value="1"/>
</bean> -->

spring mvc 导出 excel的更多相关文章

  1. mvc导出excel 之 新

    前段时间做的mvc导出excel 老大说要进行优化,我原来导出是用npoi插件进行导出,格式是将数据放入到datatable中,然后进行导出. 说要优化的时候就想着将datatable数据导出格式改为 ...

  2. ASP.NET MVC导出excel

    ASP.NET MVC导出excel 要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式 ...

  3. Mvc 导出 Excel

    Mvc 导出 Excel 之前接触过Webform,winfrom 的导出Excel方法 ,优点:省事.缺点:服务器必须安装Office 这几天做项目 和 大牛学习了一下 新的方法,自己加以总结.希望 ...

  4. Spring Boot 导出Excel表格

    Spring Boot 导出Excel表格 添加支持 <!--添加导入/出表格依赖--> <dependency> <groupId>org.apache.poi& ...

  5. Spring MVC 实现Excel的导入导出功能(1:Excel的导入)

    简介 这篇文章主要记录自己学习上传和导出Excel时的一些心得,企业办公系统的开发中,经常会收到这样的需求:批量录入数据.数据报表使用 Excel 打开,或者职能部门同事要打印 Excel 文件,而他 ...

  6. spring mvc的excel报表文件下载时流的冲突解决

    在jsp或者在servlet中有时要用到 response.getOutputStream(),但是此时会在后台报这个错误java.lang.IllegalStateException: getOut ...

  7. MVC 导出Excel 的其中一方法(View导出excel)

    场景:mvc下导出excel 思路:使用View导出excel 步骤: 1.导出标签添加事件 $("#export_A").click(function(){ //省略代码.... ...

  8. ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)

    要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...

  9. MVC导出Excel,提供下载Excel

    类1: using System.Collections.Generic;using System.Data;using System.Web.Mvc;using System.IO;using Sy ...

随机推荐

  1. boost之function

    boost中function是对函数指针和函数对象的进行封装的模板类. 定义示例:function<int()> func生成一个空的对象,表示函数参数个数为零,返回类型为int. #in ...

  2. C++实现CString和string的互相转换

    CString->std::string 例子: CString strMfc=“test“; std::string strStl; strStl=strMfc.GetBuffer(0); u ...

  3. 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题

    前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios ...

  4. Sqli-labs less 57

    Less-57 从代码中看到对id进行了 " " 的处理,所以此处我们构造的payload要进行 "" 的处理,示例payload: http://127.0. ...

  5. Loadrunner监控Centos

    一.安装必要包 yum istall gcc gcc-c++ rpcbind -y 二.下载安装必要软件rstatd 下载并安装rstatd,下载地址:http://sourceforge.net/p ...

  6. JDK中常见的package

    SUN公司在JDK中为程序开发者提供了各种实用类,这些类按功能不同分别被放入了不同的包中,供开发者使用,下面简要介绍其中最常用的几个包:1. java.lang — 包含一些Java语言的核心类,如S ...

  7. HDU 1869 六度分离

    六度分离 http://acm.hdu.edu.cn/showproblem.php?pid=1869 Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一 ...

  8. HDU 5596/BestCoder Round #66 (div.2) GTW likes math 签到

    GTW likes math  Memory Limit: 131072/131072 K (Java/Others) 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学<从自主 ...

  9. 初学Ajax(三)

    $.ajax() $.ajax()是所有ajax方法中最底层的方法,所有其他方法都是基于$.ajax()方法的封装.这个方法只有一个参数,传递一个各个功能键值对的对象. $.ajax()方法对象参数表 ...

  10. cojs 疯狂的字符串 题解报告

    首先这道题是GT考试的加强版本QAQ 当n<k的时候,答案显然是10^n 当n=k的时候,答案显然是10^n-1 这样就有20分辣 之后我们考虑k<=20的做法 显然设f(i,j)表示前i ...