/*
* 导出EXCEL
* @param req
* @param resp
* @param model
* @param info
* @return
*/
@RequestMapping(value = { "exportExcel" })
@ResponseBody
public String exportExcel(HttpServletRequest req,HttpServletResponse resp, Model model, ClearCheckErr info) {
List<ClearCheckErr> list = ClearCheckErrService.queryList(info);
String sumAmt=ClearCheckErrService.getSumAmt(info);
//String size=list==null?"0":String.valueOf(list.size());
//合计
String coretranSumAmt="0";
String acqtranSumAmt="0";
String sumFee="0";
if(list!=null&&list.size()>0){
if(sumAmt!=null&&!"".equals(sumAmt)&&sumAmt.contains("#")){
coretranSumAmt=sumAmt.split("#")[0].toString();
sumFee=sumAmt.split("#")[1].toString();
acqtranSumAmt=sumAmt.split("#")[2].toString();
}
} resp.setContentType("application/vnd.ms-excel;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
try{
String headName="财务报表—差错流水表 ("+this.getNowDt("yyyyMMddHHmmss",0)+")";
// 选择模板文件:
String path =req.getSession().getServletContext().getRealPath("/")+ "reportTemp/clearCheckErrReport.xls"; // excel模板
InputStream in = new FileInputStream(new File(path));
HSSFWorkbook work = new HSSFWorkbook(in);
// 得到excel的第1个sheet
HSSFSheet sheet =work.getSheetAt(0); //设置表头和制表时间
HSSFRow row = sheet.createRow((short) 1);
HSSFCellStyle style = work.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont font = work.createFont();
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
font.setFontName("宋体");
font.setFontHeightInPoints((short) 16);// 设置字体大小
style.setFont(font);
POIUtils.createCell(row, (short) 9, headName,style);
row.setHeight((short)(27 * 20)); int startRow=3;//表头往上多少行,开始循环填数据行数,从0开始
//获取样式
row = sheet.getRow(startRow);
style = row.getCell(2).getCellStyle();
ClearCheckErr cce = null;
for (int i = 0; i < list.size(); i++) {
cce = list.get(i);
if(cce!=null){
String stlFlag=cce.getStlFlag();
if("0".equals(stlFlag)){
stlFlag="初登记";
}else if("1".equals(stlFlag)){
stlFlag="需要结算";
}else{
stlFlag="无需结算";
}
String adjustFlag=cce.getAdjustFlag();
if("0".equals(adjustFlag)){
adjustFlag="初登记";
}else if("1".equals(adjustFlag)){
adjustFlag="需要调账";
}else{
adjustFlag="无需调账";
}
String status=cce.getStatus();
if("0".equals(status)){
status="初登记";
}else if("1".equals(status)){
status="一审完成";
}else if("2".equals(status)){
status="二审完成";
}else{
status="作废";
} row = sheet.createRow(startRow+i);
row.setHeight((short)(25 * 20)); POIUtils.createCell(row, (short) 0,i+1+"",style);
POIUtils.createCell(row, (short) 1,cce.getMerNo(),style);
POIUtils.createCell(row, (short) 2,cce.getMerName()==null||"".equals(cce.getMerName())?"":cce.getMerName(),style);
POIUtils.createCell(row, (short) 3,cce.getTermNo()==null||"".equals(cce.getTermNo())?"":cce.getTermNo(),style);
POIUtils.createCell(row, (short) 4,cce.getCardNo()==null||"".equals(cce.getCardNo())?"":cce.getCardNo(),style);
POIUtils.createCell(row, (short) 5,"0".equals(cce.getTranType())?"消费":"退货",style);
POIUtils.createCell(row, (short) 6,cce.getTranDate()==null||"".equals(cce.getTranDate())?"":cce.getTranDate(),style);
POIUtils.createCell(row, (short) 7,cce.getTranTime()==null||"".equals(cce.getTranTime())?"":cce.getTranTime(),style);
POIUtils.createCell(row, (short) 8,cce.getCoretranAmt()==null?"":cce.getCoretranAmt().toString(),style);
POIUtils.createCell(row, (short) 9,cce.getAcqtranAmt()==null?"":cce.getAcqtranAmt().toString(),style);
POIUtils.createCell(row, (short) 10,cce.getFee()==null?"":cce.getFee().toString(),style);
POIUtils.createCell(row, (short) 11,cce.getCheckTime(),style);
POIUtils.createCell(row, (short) 12,stlFlag,style);
POIUtils.createCell(row, (short) 13,adjustFlag,style);
POIUtils.createCell(row, (short) 14,"D".equals(cce.getDcFlag())?"借记":"贷记",style);
POIUtils.createCell(row, (short) 15,"0".equals(cce.getGenType())?"系统录入":"手工录入",style);
POIUtils.createCell(row, (short) 16,status,style);
POIUtils.createCell(row, (short) 17,cce.getCorebatNo()==null?"":cce.getCorebatNo().toString(),style);
POIUtils.createCell(row, (short) 18,cce.getCorejonlNo()==null?"":cce.getCorejonlNo().toString(),style);
POIUtils.createCell(row, (short) 19,cce.getCoreRrn()==null||"".equals(cce.getCoreRrn())?"":cce.getCoreRrn(),style);
POIUtils.createCell(row, (short) 20,cce.getAcqbatNo()==null?"":cce.getAcqbatNo().toString(),style);
POIUtils.createCell(row, (short) 21,cce.getAcqjonlNo()==null?"":cce.getAcqjonlNo().toString(),style);
POIUtils.createCell(row, (short) 22,cce.getAcqRrn()==null||"".equals(cce.getAcqRrn())?"":cce.getAcqRrn(),style);
POIUtils.createCell(row, (short) 23,cce.getComments()==null?"":cce.getComments().toString(),style);
POIUtils.createCell(row, (short) 24,cce.getComments1()==null?"":cce.getComments1().toString(),style);
POIUtils.createCell(row, (short) 25,cce.getComments2()==null?"":cce.getComments2().toString(),style);
}
} //设置合计交易金额、手续费金额和条数
row = sheet.createRow(list.size()+startRow);
row.setHeight((short)(27 * 20));
POIUtils.createCell(row, (short) 2, "合计 卡核心交易金额:"+coretranSumAmt+" 收单交易金额:"+acqtranSumAmt+" 交易手续费:"+sumFee,null);
/**************************** 输出流 *****************************************/
OutputStream os = resp.getOutputStream();// 取得输出流
String filename = POIUtils.encodeFileName(req, headName);
resp.setHeader("Content-disposition","attachment;filename=" + filename+ ".xls");
work.write(os);
if(in!=null){
in.close();
}
os.close();
}catch (Exception e) {
if (log.isDebugEnabled())
e.printStackTrace();
log.error("ClearCheckErrController.exportExcel()调用出现异常。");
} return null;
}

  

导出EXCEL(带数据)的更多相关文章

  1. PHP导出excel文件,第一步先实现PHP模板导出不带数据

    今天继续研究PHP导出excel文件,把复杂的事情简单化,一步步实现功能,首先实现模板文件的导出,随后再实现写入数据后导出,最终实现功能,这是基本思路.中间可以加一步,先自己写入数据导出试试,随后再数 ...

  2. 基于C#语言MVC框架NPOI控件导出Excel表数据

    控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726@{ ViewBag.Title = "dcxx" ...

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

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

  4. MVC学习笔记---MVC导出excel(数据量大,非常耗时的,异步导出)

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

  5. java 导出Excel 大数据量,自己经验总结!

    出处: http://lyjilu.iteye.com/ 分析导出实现代码,XLSX支持: /** * 生成<span style="white-space: normal; back ...

  6. java中使用poi导出excel表格数据并且可以手动修改导出路径

    在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下

  7. java导出excel模板数据

    Java导出excel数据模板,这里直接贴代码开发,流程性的走下去就是步骤: String[] colName=new String[]{"期间","科目代码" ...

  8. 基于C#语言MVC框架Aspose.Cells控件导出Excel表数据

    控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726 @{ ViewBag.Title = "xx" ...

  9. POI 导出excel带小数点的数字格式显示不对解决方法

    最近看到了一个问题就是java导出excel中带小数点的数字显示不对, 比如我想在excel中第一行显示:  3,000.0 但是在excle中导出的格式总是不带小数点 3000(非文本格式),而且也 ...

  10. java基础篇 -- 导出excel表格数据

    本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽: 1.基于maven jar包引入如下: <dependency> <groupId>net.so ...

随机推荐

  1. 配置框架spring和SpringDataJpa整合----员工是爹

    <!-- 1.dataSource 配置数据库连接池--> <bean id="dataSource" class="com.mchange.v2.c3 ...

  2. shell 判断字符串是否包含另一个字符串

    1.使用grep s1="abcdefg" s2="bcd" result=$(echo $s1 | grep "${s2}") if [[ ...

  3. 最佳实践 | RDS & POLARDB归档到X-Pack Spark计算

    X-Pack Spark服务通过外部计算资源的方式,为Redis.Cassandra.MongoDB.HBase.RDS存储服务提供复杂分析.流式处理及入库.机器学习的能力,从而更好的解决用户数据处理 ...

  4. nucleus plus代码学习

    int.S: ;************************************************************************ ;* ;* FUNCTION ;* ; ...

  5. NRF24L01学习

    一.工作模式 PWR_UP和PRIM_RX在寄存器0x00中的第0位和第1位. 待机模式I:只是使用晶振工作,CE=0时是拉低? 待机模式II:部分时钟缓冲器处在工作模式.TX FIFO为空并且CE为 ...

  6. 如何在程序中执行动态生成的Delphi代码

    如何在程序中执行动态生成的Delphi代码 经常发现有人提这类问题,或者提问内容最后归结成这种问题 前些阵子有位高手写了一个“执行动态生成的代码”,这是真正的高手,我没那种功力,我只会投机取巧. 这里 ...

  7. BZOJ 3622: 已经没有什么好害怕的了(二项式反演)

    传送门 解题思路 首先将\(a\),\(b\)排序,然后可以算出\(t(i)\),表示\(a(i)\)比多少个\(b(i)\)大,根据容斥套路,设\(f(k)\)表示恰好有\(k\)个\(a(i)\) ...

  8. CSS入门之盒模型(六分之四)

    盒模型要点知识 务必注意看,这可是前端面试 必定会遇到 的问题. box-sizing 盒模型的主要CSS属性,除继承外有两个值: content-box 这里不再细说历史原因,只说其作用. cont ...

  9. 51NOD 1005

    1005 大数加法  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出2个大整数A,B,计算A+B的结果.   Input 第1行:大数A 第2行:大 ...

  10. PHP的Session机制解析 1

    一.php的默认session机制 php默认用磁盘文件来实现session在php.ini中session.save_handler = files定义session机制session.save_p ...