dao

    <select id="selectTargetModel" resultMap="targetMap">
select si.SHOP_NAME shopName,si.SHOP_ID,DATE_FORMAT(t.datadate,'%m/%Y') datadate,
IFNULL(sum(t.quantity),) quantity,IFNULL(t.product_model,) model,t.class_id
from t_target t
JOIN shop_info si on si.SHOP_ID=t.target_id
<include refid="listwhere"/>
and t.class_id= and si.flag=
GROUP BY si.shop_id,t.product_model
</select> <select id="selectKeyModel" resultMap="targetMap">
select tm.branch_model model from t_modelmap tm where tm.isKey=
and tm.party_id=#{countryId}
and tm.flag=
order by tm.branch_model desc
</select>

service

//导出印尼目标
public XSSFWorkbook exportTargetExcel(@Param("searchStr")String searchStr,@Param("conditions")String conditions,String[] excelHeader,String excelHeader1,String excelHeader2,String title) throws Exception;

service.impl

@Override
public XSSFWorkbook exportTargetExcel(String searchStr, String conditions,
String[] excelHeader, String excelHeader1,String excelHeader2, String title)
throws Exception {
//查询门店以及门店整体目标
List<IndonTarget> list = indontargetDao.selectShopList(searchStr,conditions);
//分公司的所有关键机型
List<IndonTarget> ModelKeyList = indontargetDao.selectKeyModel(WebPageUtil.getLoginedUser().getPartyId()); //查询门店关键机型目标
List<IndonTarget> ModelList = indontargetDao.selectTargetModel(searchStr, conditions); // SimpleDateFormat format = new SimpleDateFormat("MM/yyyy");
// Date date =new Date();
//
// String d = format.format(date);
// System.out.println(d+"-------------9999----------------");
// Date dt = format.parse(d);
// System.out.println(d+"-------------9999----------------"); int[] excelWidth = {,,,};
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet(title); //导出字体样式
XSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) ); // 字体大小 //导出样式
XSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFont(font); //导出样式
XSSFCellStyle style1 = workbook.createCellStyle();
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style1.setFont(font);
// style1.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
// style1.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
// style1.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
// style1.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
style1.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); sheet.createFreezePane(,,,);//锁定参数1为起始列,参数2为起始行,3结整列,4为结束行
sheet.addMergedRegion(new CellRangeAddress(,,,));// 起始行号,终止行号, 起始列号,终止列号
sheet.addMergedRegion(new CellRangeAddress(,,,));// 起始行号,终止行号, 起始列号,终止列号
sheet.addMergedRegion(new CellRangeAddress(,,,ModelKeyList.size()+));// 起始行号,终止行号, 起始列号,终止列号 for (int i = ; i < excelWidth.length; i++) {
sheet.setColumnWidth(i, * excelWidth[i]);
} XSSFRow row = sheet.createRow(); //表头数据
for (int i = ; i < excelHeader.length; i++) {
XSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style1); } XSSFRow row1 = sheet.createRow();
XSSFCell cell1 = row1.createCell();
cell1.setCellValue(excelHeader1);
cell1.setCellStyle(style1); XSSFCell cell10 = row.createCell();
cell10.setCellValue(excelHeader2);
cell10.setCellStyle(style1); //门店整体目标 动态左边门店
for (int a = ; a < list.size(); a++) {
row = sheet.createRow(a+);
IndonTarget indTarget = list.get(a);
//获得 当前的门店ID
String shop=indTarget.getShopId()+""; if(indTarget.getShopName()!=null && indTarget.getShopName()!=""){
XSSFCell cell = row.createCell();
cell.setCellValue(indTarget.getShopName());
cell.setCellStyle(style);
} XSSFCell cell = row.createCell();
cell.setCellValue(indTarget.getDatadate());
cell.setCellStyle(style); XSSFCell cell2 = row.createCell();
cell2.setCellValue(indTarget.getQuantity());
cell2.setCellStyle(style); //所有分公司关键机型 动态头部机型
for (int i = ; i < ModelKeyList.size(); i++) {
IndonTarget keyModel = ModelKeyList.get(i);
//获得当前型号
String key=keyModel.getModel(); XSSFCell cell0 = row1.createCell(i+);
cell0.setCellValue(key);
cell0.setCellStyle(style1);
XSSFCell cell3 = row.createCell(i+);
//分公司某个关键机型目标
for (int j = ; j < ModelList.size(); j++) {
IndonTarget indTargetData = ModelList.get(j);
String thisShop=indTargetData.getShopId()+"";
if(thisShop.equals(shop) && indTargetData.getModel().equals(key) ){
cell3.setCellValue(indTargetData.getQuantity()); } }
cell3.setCellStyle(style);
} } return workbook;
}

action

    public void exportTargetExcel(){
try {
String title="Indonesia TV Target";
String fileName = title+".xlsx";
final String userAgent = request.getHeader("USER-AGENT");
if(null!=userAgent){
if (- != userAgent.indexOf("Firefox")) {//Firefox
fileName = new String(fileName.getBytes(), "ISO8859-1");
}else if (- != userAgent.indexOf("Chrome")) {//Chrome
fileName = new String(fileName.getBytes(), "ISO8859-1");
} else {//IE7+
fileName = URLEncoder.encode(fileName, "UTF-8");
fileName = StringUtils.replace(fileName, "+", "%20");//替换空格
}
} else {
fileName = fileName;
} String datadate = request.getParameter("datadate");
String shop = request.getParameter("shopName"); SimpleDateFormat dfd = new SimpleDateFormat("yyyy-MM");// 设置日期格式
Date d = new Date();
String dt = dfd.format(d); String searchStr = "1 = 1"; if(shop!=null && !shop.equals("")){
shop=shop.replace("\'", "\\'");
searchStr += " and si.shop_name like ('%"+shop+"%')";
} if(datadate!=null && !datadate.equals("")){
searchStr += " and date_format(t.datadate,'%Y-%m') ='"+datadate+"'";
}else{
searchStr += " and date_format(t.datadate,'%Y-%m') ='"+dt+"'";
} //权限
String userPartyIds = WebPageUtil.loadPartyIdsByUserId();
String conditions = "";
if(!WebPageUtil.isHAdmin()){
if(null!=userPartyIds && !"".equals(userPartyIds)){
conditions +=" si.COUNTRY_ID in ("+userPartyIds+")";
}else
{
conditions += " 1=2 ";
}
}else{
conditions += " 1=1 ";
} String[] excelHeader={
"*Shop Name","*Month","Total Target"
}; String excelHeader1=
"*Quantity"
; String excelHeader2=
"*Model Target"
; XSSFWorkbook workbook =indonTargetServce.exportTargetExcel(conditions,searchStr, excelHeader,excelHeader1,excelHeader2, title);
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
OutputStream ouputStream = response.getOutputStream();
workbook.write(ouputStream);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}

poi横纵导出的更多相关文章

  1. Java中使用poi导入、导出Excel

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  2. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  3. java使用poi将html导出word,默认打开页面视图

    <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:o ...

  4. POI导入和导出Excel总结

    POI导入和导出Excel总结   POI使用总结 1.POI读取Excel 打开工作簿的方式有以下两种简单的应用,POI读取和输出工作簿文件都可以通过以下两种方式来声明: //通过输入流的方式打开本 ...

  5. apache poi根据模板导出excel

    需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; im ...

  6. 转:POI操作Excel导出

    package com.rd.lh.util.excel; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; ...

  7. 使用POI实现数据导出Excel表格

    package cn.sh.bzt.kwj.action; import java.io.IOException; import java.io.OutputStream; import java.t ...

  8. Java POI 两种导出方式

    这里面包含了模板导出方法和自定义模板进行导出 package jp.co.syspro.poo.action.hibikoyou; import java.io.ByteArrayOutputStre ...

  9. 一个poi操作实现导出功能的类

    public class ExportExcel<T> { public void exportExcel(Collection<T> dataset, OutputStrea ...

随机推荐

  1. nodejs - 1)上传图片 ,并显示 , 2)模块 formidable

    1.代码: 1-1: 入口文件: index.js var server = require('./server'); var router = require("./router" ...

  2. WCF分布式服务1-核心概念

    参考msdn library for WCF Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架. 借助 WCF,可以将数据作为异步消息从 ...

  3. JAVA常用设计模式(一、抽象工厂模式)

    抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最 ...

  4. UVa699

    这个建树的根选的很有意思,在中间作为树的根.所以二叉树建树的方法虽然一般是有两种数组的方法,一个是如果深度不太大的话,可以之间用2*k+1,2*k建树,如果很大的话,就挨着建树,弄一个结构体,有左右子 ...

  5. APK重编译

    最近沉迷某游戏 尝试了一些不可描述的东西 , 记录一下研究过程 具体是哪个app不公开 ... 准备工具 APKtool && signapk && jre .net ...

  6. java_oop_类

    类的初始化顺序    再论类的组成    类的初始化顺序详解        变量        实例变量(成员变量)        类变量(静态变量)    方法        实例方法       ...

  7. 如何将极客时间课程制作成kindle电子书

    订阅了几个极客时间的专栏,一直没有时间去看. 最近,想着如果把内容制作成电子书,利用上下班时间学习一下,岂不是很方便? 在网上搜到一个很好用的开源软件,几分钟就可以把极客时间的专栏做成电子书,简直太棒 ...

  8. opencv简介

    Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而 ...

  9. Flask--(项目准备)--框架搭建,配置文件抽取,业务逻辑抽取

    抽取配置文件: import logging from redis import StrictRedis class Config(object): """项目的配置&q ...

  10. Java遍历Map对象的方式

    public static void main(String[] args) { HashMap<String, String> testMap = new HashMap<> ...