xml

 <select id="selectShopList" resultType="java.util.HashMap">
SELECT
p.PARTY_NAME partyName,
c.CUSTOMER_NAME customerName,
s.SHOP_ID shopId,
s.SHOP_NAME shopName FROM shop_info s,customer_info c,party p
WHERE s.CUSTOMER_ID=c.CUSTOMER_ID AND s.PARTY_ID=p.PARTY_ID AND p.COUNTRY_ID=#{countryId}
</select> <select id="selectShopRole" resultType="java.util.HashMap">
SELECT
u.USER_NAME userName,
m.salertype salerType
FROM shop_saler_mapping m,user_login u WHERE m.`user_login_id`=u.`USER_LOGIN_ID`
AND m.shop_id=#{shopId}
  </select>

dao

    //获取门店信息
public List<HashMap<String, Object>> selectShopList(@Param("countryId")String countryId) throws Exception; //获取门店中的角色信息
public List<HashMap<String,Object>> selectShopRole(@Param("shopId")String shopId) throws Exception;

service

//导出门店人员信息
public XSSFWorkbook exportShopRole( String[] excelHeader,
String title) throws Exception;

service.impl

    public XSSFWorkbook exportShopInfo(String searchStr,String conditions, String[] excelHeader,
String title) throws Exception {
//门店信息集合
List<Shop> list = shopDao.exportShopInfo(searchStr,conditions); int[] excelWidth = {,,,,,,,,,,,,}; XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(title); XSSFRow row = sheet.createRow(); //导出字体样式
XSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) ); // 字体大小 //导出样式
XSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFont(font); for (int i = ; i < excelWidth.length; i++) {
sheet.setColumnWidth(i, * excelWidth[i]);
} //表头数据
for (int i = ; i < excelHeader.length; i++) {
XSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style); } //表体数据
for (int i = ; i < list.size(); i++) {
row = sheet.createRow(i+);
Shop shop = list.get(i); //门店名
XSSFCell cell0 = row.createCell();
cell0.setCellValue(shop.getShopName());
cell0.setCellStyle(style); //客户编码
XSSFCell cell1 = row.createCell();
cell1.setCellValue(shop.getCustomerCode());
cell1.setCellStyle(style); //门店等级
XSSFCell cell2 = row.createCell();
if(shop.getLevel()!=null){
if(shop.getLevel().equals("")){
cell2.setCellValue("A");
}else if(shop.getLevel().equals("")){
cell2.setCellValue("B");
}else if(shop.getLevel().equals("")){
cell2.setCellValue("C");
}else if(shop.getLevel().equals("")){
cell2.setCellValue("D");
}else if(shop.getLevel().equals("")){
cell2.setCellValue("S");
}else if(shop.getLevel().equals("")){
cell2.setCellValue("AA");
}else{
cell2.setCellValue(shop.getLevel());
}
}else{
cell2.setCellValue(shop.getLevel());
} cell2.setCellStyle(style); //进驻时间
XSSFCell cell3 = row.createCell();
if(shop.getEnterDate()==null || shop.getEnterDate().equals("")){
cell3.setCellValue("");
}else{
cell3.setCellValue(DateFormatUtils.format(shop.getEnterDate(), "yyyy-MM-dd"));
}
cell3.setCellStyle(style); //区域
XSSFCell cell4 = row.createCell();
cell4.setCellValue(shop.getPartyName());
cell4.setCellStyle(style); //省份
XSSFCell cell5 = row.createCell();
cell5.setCellValue(shop.getProvinceName());
cell5.setCellStyle(style); //地址
XSSFCell cell6 = row.createCell();
cell6.setCellValue(shop.getDetailAddress());
cell6.setCellStyle(style); //联系人
XSSFCell cell7 = row.createCell();
cell7.setCellValue(shop.getContactName());
cell7.setCellStyle(style); //联系人电话
XSSFCell cell8 = row.createCell();
cell8.setCellValue(shop.getPhone());
cell8.setCellStyle(style); //邮箱
XSSFCell cell9 = row.createCell();
cell9.setCellValue(shop.getEmail());
cell9.setCellStyle(style); //经度
XSSFCell cell10 = row.createCell();
if( shop.getLng()==null){
cell10.setCellValue();
}else{
cell10.setCellValue(shop.getLng());
}
cell10.setCellStyle(style); //纬度
XSSFCell cell11 = row.createCell();
if( shop.getLat()==null){
cell11.setCellValue();
}else{
cell11.setCellValue(shop.getLat());
} cell11.setCellStyle(style); //Location
XSSFCell cell12 = row.createCell();
cell12.setCellValue(shop.getLocation());
cell12.setCellStyle(style);
} return workbook;
} @Override
public XSSFWorkbook exportShopRole(
String[] excelHeader, String title) throws Exception {
//门店信息
List<HashMap<String, Object>> shopList = shopDao.selectShopList(WebPageUtil.getLoginedUser().getPartyId()); 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.setFillForegroundColor(HSSFColor.GOLD.index);
style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style1.setFont(font); 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);
} //左边区域,渠道,门店名
for (int i = ; i < shopList.size(); i++) {
//返回map,每一个shopId对应一个map
HashMap<String, Object> shopMap=shopList.get(i); String shopId = shopMap.get("shopId").toString(); //门店id中对应的用户名
List<HashMap<String,Object>> listRole = shopDao.selectShopRole(shopId); String promoter="";
String ywy="";
String dd="";
for (int j = ; j < listRole.size(); j++) {
HashMap<String,Object> shop2 = listRole.get(j); if(shop2.get("salerType").toString().equals(""))
{
ywy+=shop2.get("userName")+"/";
}
else if(shop2.get("salerType").toString().equals(""))
{
promoter+=shop2.get("userName")+"/";
}
else if(shop2.get("salerType").toString().equals(""))
{
dd+=shop2.get("userName")+"/";
} } //结束循环,结果放在循环外
shopMap.put("promoter", promoter);
shopMap.put("ywy", ywy);
shopMap.put("dd", dd); }
////////////end/////////// //excel export for (int j = ; j < shopList.size(); j++) { row = sheet.createRow(j+); //区域
XSSFCell cell0 = row.createCell();
cell0.setCellValue(shopList.get(j).get("partyName").toString());
cell0.setCellStyle(style); //渠道
XSSFCell cell1 = row.createCell();
cell1.setCellValue(shopList.get(j).get("customerName").toString());
cell1.setCellStyle(style); //门店
XSSFCell cell2 = row.createCell();
cell2.setCellValue(shopList.get(j).get("shopName").toString());
cell2.setCellStyle(style); XSSFCell cell3 = row.createCell(+);
cell3.setCellValue(shopList.get(j).get("promoter").toString());
cell3.setCellStyle(style); XSSFCell cell4 = row.createCell(+);
cell4.setCellValue(shopList.get(j).get("ywy").toString());
cell4.setCellStyle(style); XSSFCell cell5 = row.createCell(+);
cell5.setCellValue(shopList.get(j).get("dd").toString());
cell5.setCellStyle(style);
} return workbook;
}
}

action

    //导出门店人员信息
public void exportShopRole(){
try {
String title ="Export All Info";
String fileName = getExportExcelName(title);
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[] excelHeader = {"Party","Dealer Name","Store Name",
"Promoter Name","Sales Man Name","MD Name"}; XSSFWorkbook workbook = shopService.exportShopRole(excelHeader, 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();
log.error(e.getMessage(),e);
}
}

java List<Map<String,Object>的更多相关文章

  1. java List<Map<String,Object>遍历的方法

    public static void main(String[] args) { List<HashMap<String, Object>> list = new ArrayL ...

  2. List<Map<String,Object>>使用Java代码遍历

    List<Map<String,Object>>的结果集怎么使用Java代码遍历以获取String,Object的值: package excel; import java.u ...

  3. java中对List<Map<String,Object>>中的中文汉字排序

    import java.text.Collator;import java.util.ArrayList;import java.util.Collections;import java.util.C ...

  4. JAVA中对List<Map<String,Object>>中的中文汉字进行排序

    转载于:http://blog.csdn.net/flykos/article/details/54631573 参考:http://www.jb51.net/article/88710.htm 本篇 ...

  5. JAVA中对List<map<String,Object>>根据map某个key值进行排序

    方法compareTo()比较此对象与指定对象的顺序.如果该对象小于.等于或大于指定对象,则分别返回负整数.零或正整数.返回整数,1,-1,0:返回1表示大于,返回-1表示小于,返回0表示相等. 普通 ...

  6. java中List<Map<String, Object>>关于null的判断

    List<Map<String, Object>> selectTmFileInfo = fileInfoService.selectTmFileInfoByToken(cTo ...

  7. javaBean与Map<String,Object>互转

    背景:有时候想不通阿帕奇的BeanUtils是怎么进行map和Bean互相转化的. 工作闲暇之余,自己写个一小段代码,一探究竟,试试才发现,原来一切并非我们想的那么什么和复杂. 注:这里只是简单实例, ...

  8. 迭代输出Map和List<Map<String,Object>>的方法

    一.Map<String,Object> String:key的类型 Object:value的类型,value可能是String,或者int类型,什么类型都可以 对于Map接口来说,本身 ...

  9. Java中Map和Object的互相转换方式

    一.使用Apache中的BeanUtils类,导入commons-beanutils包. Jar包Maven下载地址:https://mvnrepository.com/artifact/common ...

随机推荐

  1. drf的组件和解析器

    drf的序列化组件: 1. 用途: 把python中的对象,转成json格式字符串 2. 使用步骤1: 写一个类继承Serializer或者ModelSerializer 举例(类中选取字段进行序列化 ...

  2. groupadd语法

    groupadd [选项] 组 创建一个新的组.Groupadd命令使用命令行中指定的值加上系统默认值创建新的组账户.新组将根据需要输入系统. (1).选项 1 2 3 4 5 6 7 -f,--fo ...

  3. 企业面试题-find结合sed查找替换

    题:把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换成oldgirl 解答: 建立测试数据: [root@tan data]# mkdir /oldboy ...

  4. 宝塔面板Windows 面板5.0 memcache安装

    a 软件管理>相应的PHP版本里(php5.6)>>配置>配置修改>编辑框拉到底 ;extension=php_memcache.dll 前的“;”号去掉>保存&g ...

  5. C# 开发ModBus的服务器程序 实现ModBus数据总站 搭建自定义的Modbus服务器 同时支持tcp和rtu

    前言 本文将使用一个NuGet公开的组件技术来实现一个ModBus TCP的服务器端数据引擎,方便的实现接收来自各种设备的数据.并且该服务器模拟真实的设备,包含了数据池功能,可以接受来自任何支持Mod ...

  6. Windows系统,Tensorflow的Tensorboard工具细节问题

    随着跟着TensorFlow视频学习,学到Tensorboard可视化工具这里的时候. 在windows,cmd里面运行,tensorboard --logdir=你logs文件夹地址  这行代码,一 ...

  7. Front-end: Using blurred backgrounds with contents unaffected.

    Purpose: Using a picture as the background of a page with blurred effect, while the content not blur ...

  8. Js/使用js来改变css的样式

    1.一般来说我最先想到的是,通过id的方式去改变css的样式,所以有了下面这种写法: 2.第二种我想到的办法是通过改变他的class的名称,去设置 他的样式,其中用的比较多的就是这样的:

  9. 【leetcode】429. N-ary Tree Level Order Traversal

    problem 429. N-ary Tree Level Order Traversal solution1:Iteration /* // Definition for a Node. class ...

  10. c语言笔记3运算符与表达式

    运算符与表达式 知识点一 操作数:参与运算的具体对象. 运算符:指明了对操作数进行的某项运算. 表达式:表示一个求值得规则.它由变量.常量.运算符和函数.括号按一定规则组成. 书写表达式的细节:1,运 ...