二维表拼接

package com.cfets.irsms.util;

import java.util.ArrayList;
import java.util.List;

import com.cfets.common.util.StringUtil;
import com.cfets.irsms.vo.VInfocountVO;

public class JointExcelImf {

  /**
  * @author
  * @version 2015-10-14 下午2:01:43
  * @return 参数list为查询结果list,firstRow为excel首行;
  */
  public static List<String[]> getExcelList(List list, List firstRow) {
  // 定义导出excel的list
  ArrayList<String[]> excelList = new ArrayList<String[]>();
  // 拼接首行
  String[] firstArr = getfirstArr(firstRow);

  // 遍历查询机构list,得到excel的每一行
  excelList = (ArrayList<String[]>) getEveryArr(list, firstArr);
  // 排列excel ……
  // …… 待定

  return excelList;
  }

  /**
  * 遍历查询机构list,得到excel的每一行
  */
  public static List<String[]> getEveryArr(List list, String[] firstArr) {
  // 定义导出excel的list
  ArrayList<String[]> excelList = new ArrayList<String[]>();
  excelList.add(firstArr);
  // 遍历查询结果list
  for (int i = 0; i < list.size(); i++) {
  // 定义结果数据的每一行
  String[] everyArr = new String[firstArr.length];

  VInfocountVO infocountVO = (VInfocountVO) list.get(i);
  String dlDt = infocountVO.getDlDt();// 日期
  String orgId = infocountVO.getOrgId();// 机构
  String cntrctNmEn = infocountVO.getCntrctNmEn();// 合约
  String dlSum = infocountVO.getDlsum();// 成交量
  // 对每一行的前两列赋值
  everyArr[0] = dlDt;
  everyArr[1] = orgId;

  // 遍历首行
  for (int j = 2; j < firstArr.length; j++) {
  // 判空和null
  if (!StringUtil.isEmpty(cntrctNmEn)) {
  // 如果合约品种相等
  if (cntrctNmEn.equals(firstArr[j])) {
  // 对此列的第j列赋值
  everyArr[j] = dlSum;
  }
  }
  }
  // 赋值完毕的一维数组添加到自定义的execllist
  excelList.add(everyArr);
  }
  return excelList;
  }

  /**
  * 拼接首行(自定义)
  */
  public static String[] getfirstArr(List firstRow) {
  String[] firstArr = new String[firstRow.size() + 2];
  firstArr[0] = "日期";
  firstArr[1] = "机构";
  for (int i = 0; i < firstRow.size(); i++) {
  firstArr[i + 2] = firstRow.get(i).toString();
  }
  return firstArr;
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值