public class RequireExcelController {
@Resource
private RequireService requireService;
@RequestMapping(value="requireExport")
public String requireExport(HttpServletRequest request,HttpServletResponse response) throws IOException{
String fileName="基于合同配置制定要货计划";
//填充projects数据
List<Require> projects=createData(request);
List<Map<String,Object>> list=createExcelRecord(projects);
String columnNames[]={"合同编号","合同名称","签订时间","客户名称","合同属性","业务类型","制作状态","是否完成交底"};//列名
String keys[] = {"contractCode","contractName","contractSingDate","contractCustomerName","countryCode","businessType","requireStatus","isJd"};//map中的key
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ExcelUtil.createWorkBook(list,keys,columnNames).write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));
ServletOutputStream out = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (final IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
return null;
}
private List<Require> createData(HttpServletRequest request) {
// TODO Auto-generated method stub
//自己实现
String contractCode = request.getParameter("contractCode");
if(contractCode == null){
contractCode = "";
}
//获取合同名称
String contractName = request.getParameter("contractName");
if(contractName == null){
contractName = "";
}
//获取客户名称
String contractCustomerName = request.getParameter("contractCustomerName");
if(contractCustomerName == null){
contractCustomerName = "";
}
//获取制作状态
String requireStatus = request.getParameter("requireStatus");
if(requireStatus == null){
requireStatus = "";
}
List<String> comtNumberArray = new ArrayList<String>();
if(null != contractCode && !"".equals(contractCode)){
String[] array =contractCode.split(",");
for(int i = 0;i<array.length;i++){
contractCode = array[i].trim();
comtNumberArray.add(contractCode);
}
}
HashMap<String, Object> vo = new HashMap<String, Object>();
//向vo内填入查询条件
vo.put("contractCode", contractCode);
vo.put("contractName", contractName);
vo.put("contractCustomerName", contractCustomerName);
vo.put("requireStatus", requireStatus);
//List<Require> list = requireService.movePage(vo, null, null);
ArrayList<Require> RequireList = requireService.movePageExcel(vo);
return RequireList;
}
private List<Map<String, Object>> createExcelRecord(List<Require> projects) {
List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("sheetName", "sheet1");
listmap.add(map);
Require project=null;
for (int j = 0; j < projects.size(); j++) {
project=projects.get(j);
Map<String, Object> mapValue = new HashMap<String, Object>();
mapValue.put("contractCode", project.getContractCode());
mapValue.put("contractName", project.getContractName());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
if(project.getContractSingDate() ==null){
mapValue.put("contractSingDate", "");
} else {
String Date1 = format.format(project.getContractSingDate());
mapValue.put("contractSingDate", Date1);
}
mapValue.put("contractCustomerName", project.getContractCustomerName());
mapValue.put("countryCode", project.getContractCode());
mapValue.put("businessType", project.getBusinessType());
mapValue.put("requireStatus", project.getRequireStatus());
if(project.getIsJd().equals("Y")){
mapValue.put("isJd", "是");
} else {
mapValue.put("isJd", "否");
}
listmap.add(mapValue);
}
return listmap;
}
}
@Resource
private RequireService requireService;
@RequestMapping(value="requireExport")
public String requireExport(HttpServletRequest request,HttpServletResponse response) throws IOException{
String fileName="基于合同配置制定要货计划";
//填充projects数据
List<Require> projects=createData(request);
List<Map<String,Object>> list=createExcelRecord(projects);
String columnNames[]={"合同编号","合同名称","签订时间","客户名称","合同属性","业务类型","制作状态","是否完成交底"};//列名
String keys[] = {"contractCode","contractName","contractSingDate","contractCustomerName","countryCode","businessType","requireStatus","isJd"};//map中的key
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ExcelUtil.createWorkBook(list,keys,columnNames).write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));
ServletOutputStream out = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (final IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
return null;
}
private List<Require> createData(HttpServletRequest request) {
// TODO Auto-generated method stub
//自己实现
String contractCode = request.getParameter("contractCode");
if(contractCode == null){
contractCode = "";
}
//获取合同名称
String contractName = request.getParameter("contractName");
if(contractName == null){
contractName = "";
}
//获取客户名称
String contractCustomerName = request.getParameter("contractCustomerName");
if(contractCustomerName == null){
contractCustomerName = "";
}
//获取制作状态
String requireStatus = request.getParameter("requireStatus");
if(requireStatus == null){
requireStatus = "";
}
List<String> comtNumberArray = new ArrayList<String>();
if(null != contractCode && !"".equals(contractCode)){
String[] array =contractCode.split(",");
for(int i = 0;i<array.length;i++){
contractCode = array[i].trim();
comtNumberArray.add(contractCode);
}
}
HashMap<String, Object> vo = new HashMap<String, Object>();
//向vo内填入查询条件
vo.put("contractCode", contractCode);
vo.put("contractName", contractName);
vo.put("contractCustomerName", contractCustomerName);
vo.put("requireStatus", requireStatus);
//List<Require> list = requireService.movePage(vo, null, null);
ArrayList<Require> RequireList = requireService.movePageExcel(vo);
return RequireList;
}
private List<Map<String, Object>> createExcelRecord(List<Require> projects) {
List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("sheetName", "sheet1");
listmap.add(map);
Require project=null;
for (int j = 0; j < projects.size(); j++) {
project=projects.get(j);
Map<String, Object> mapValue = new HashMap<String, Object>();
mapValue.put("contractCode", project.getContractCode());
mapValue.put("contractName", project.getContractName());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
if(project.getContractSingDate() ==null){
mapValue.put("contractSingDate", "");
} else {
String Date1 = format.format(project.getContractSingDate());
mapValue.put("contractSingDate", Date1);
}
mapValue.put("contractCustomerName", project.getContractCustomerName());
mapValue.put("countryCode", project.getContractCode());
mapValue.put("businessType", project.getBusinessType());
mapValue.put("requireStatus", project.getRequireStatus());
if(project.getIsJd().equals("Y")){
mapValue.put("isJd", "是");
} else {
mapValue.put("isJd", "否");
}
listmap.add(mapValue);
}
return listmap;
}
}