/* * 拼装XML */ /* * 拼装XML */ public void ratioLine() { // 加入innerCode List<PELine> peLineList = indexInformationService.findPeLineList( innerCode, startDate, endDate); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); NumberFormat nf = new DecimalFormat("##.00"); StringBuffer data = new StringBuffer("<chart>"); data.append("<series>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + sdf.format(pl.getTradingDate()) + "</value>"); } data.append("</series>"); data.append("<graphs>"); data.append("<graph gid='1' title='收盘点位' balloon_text='{value}'>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + nf.format(pl.getClosePrice().doubleValue()) + "</value>"); } data.append("</graph>"); data.append("<graph gid='2' title='PeBand10' balloon_text='{value}'>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + nf.format(pl.getPeBand10().doubleValue()) + "</value>"); } data.append("</graph>"); data.append("<graph gid='3' title='PeBand20' balloon_text='{value}'>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + nf.format(pl.getPeBand20().doubleValue()) + "</value>"); } data.append("</graph>"); data.append("<graph gid='4' title='PeBand30' balloon_text='{value}'>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + nf.format(pl.getPeBand30().doubleValue()) + "</value>"); } data.append("</graph>"); data.append("<graph gid='5' title='PeBand40' balloon_text='{value}'>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + nf.format(pl.getPeBand40().doubleValue()) + "</value>"); } data.append("</graph>"); data.append("<graph gid='6' title='PeBand50' balloon_text='{value}'>"); for (int i = 0; i < peLineList.size(); i++) { PELine pl = peLineList.get(i); data.append("<value xid='" + i + "'>" + nf.format(pl.getPeBand50().doubleValue()) + "</value>"); } data.append("</graph>"); data.append("</graphs>"); data.append("</chart>"); try { getResponse().setCharacterEncoding("utf-8"); getResponse().getWriter().print(data.toString()); } catch (IOException e) { log.debug("数据传输错误" + e); } } // //导出excel // public void exportExcel() { List<PELine> peLineList = indexInformationService.findPeLineList( innerCode, startDate, endDate); HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个工作间 HSSFSheet sheet = workbook.createSheet("sheet1");// 创建一个sheet HSSFRow row = sheet.createRow(0);// 创建一行 HSSFCell cell = row.createCell(0);// 创建这行的第一个元素.从0开始 cell.setCellValue("日期");// 写入内容 cell = row.createCell(1);// 同上 cell.setCellValue("收盘点位"); cell = row.createCell(2); cell.setCellValue("动态PE"); cell = row.createCell(3); cell.setCellValue("1倍PE-BAND"); DecimalFormat df2 = new DecimalFormat("###.00"); DecimalFormat df3 = new DecimalFormat("##.00"); NumberFormat nbf = NumberFormat.getInstance(); nbf.setMaximumFractionDigits(2); nbf.setMinimumFractionDigits(2); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < peLineList.size(); i++) { PELine pe = peLineList.get(i); row = sheet.createRow(i + 1); cell = row.createCell(0); cell.setCellValue(sdf.format(pe.getTradingDate())); cell = row.createCell(1); cell.setCellValue(df2.format(pe.getClosePrice().doubleValue())); cell = row.createCell(2); cell.setCellValue(df2.format(pe.getPe().doubleValue())); cell = row.createCell(3); cell.setCellValue(df3.format(pe.getPeBand1().doubleValue())); } getResponse().reset(); getResponse().setContentType("application/vnd.ms-excel"); getResponse().setHeader("Content-Disposition", "attachment; filename=peBandExcel.xls"); OutputStream out = null; try { out = this.getResponse().getOutputStream(); workbook.write(out); this.getResponse().flushBuffer(); } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); } catch (Exception e) { } } /* * 导出excel */ // //导出excel // public void exportExcel() { List<PELine> peLineList = indexInformationService.findPeLineList( innerCode, startDate, endDate); HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个工作间 HSSFSheet sheet = workbook.createSheet("sheet1");// 创建一个sheet HSSFRow row = sheet.createRow(0);// 创建一行 HSSFCell cell = row.createCell(0);// 创建这行的第一个元素.从0开始 cell.setCellValue("日期");// 写入内容 cell = row.createCell(1);// 同上 cell.setCellValue("收盘点位"); cell = row.createCell(2); cell.setCellValue("动态PE"); cell = row.createCell(3); cell.setCellValue("1倍PE-BAND"); DecimalFormat df2 = new DecimalFormat("###.00"); DecimalFormat df3 = new DecimalFormat("##.00"); NumberFormat nbf = NumberFormat.getInstance(); nbf.setMaximumFractionDigits(2); nbf.setMinimumFractionDigits(2); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < peLineList.size(); i++) { PELine pe = peLineList.get(i); row = sheet.createRow(i + 1); cell = row.createCell(0); cell.setCellValue(sdf.format(pe.getTradingDate())); cell = row.createCell(1); cell.setCellValue(df2.format(pe.getClosePrice().doubleValue())); cell = row.createCell(2); cell.setCellValue(df2.format(pe.getPe().doubleValue())); cell = row.createCell(3); cell.setCellValue(df3.format(pe.getPeBand1().doubleValue())); } getResponse().reset(); getResponse().setContentType("application/vnd.ms-excel"); getResponse().setHeader("Content-Disposition", "attachment; filename=peBandExcel.xls"); OutputStream out = null; try { out = this.getResponse().getOutputStream(); workbook.write(out); this.getResponse().flushBuffer(); } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); } catch (Exception e) { } } //用来添加小方图 public void ratioLine2() { int cnt, number; /* * x--沪深300 y--和美1期 */ sunshinePrivate = sunshinePrivateService.getSunshinePrivate(portfolioInnerCode); //为了获得基金名称 int x = 1, y = 1; int preCompanyCode; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); NumberFormat nf = new DecimalFormat("##.00"); StringBuffer data = new StringBuffer("<chart>"); List<SunshinePrivateLine> sunshinePrivateLineList = sunshinePrivateService.getSunshinePrivateLine(portfolioInnerCode); data.append("<series>"); preCompanyCode = sunshinePrivateLineList.get(0).getCompanyCode(); SunshinePrivateLine spl = null; for(cnt = 1; cnt < sunshinePrivateLineList.size(); cnt++) { /* * 找到区分点 cnt */ spl=sunshinePrivateLineList.get(cnt); if(spl.getCompanyCode() == preCompanyCode){ preCompanyCode = spl.getCompanyCode(); } else break; } SunshinePrivateLine splx = sunshinePrivateLineList.get(0); SunshinePrivateLine sply = sunshinePrivateLineList.get(0); data.append("<value xid='" + 0 + "'>" + sdf.format(sunshinePrivateLineList.get(0).getEndDate()) + "</value>"); for(number = 1; x < cnt || y < sunshinePrivateLineList.size()-cnt; number++){ /* * 补日期 */ if(splx.getEndDate().compareTo(sply.getEndDate()) < 0){ data.append("<value xid='" + number + "'>" + sdf.format(splx.getEndDate()) + "</value>"); x++; splx = sunshinePrivateLineList.get(x); } else if(splx.getEndDate().compareTo(sply.getEndDate()) == 0){ data.append("<value xid='" + number + "'>" + sdf.format(splx.getEndDate()) + "</value>"); x++; y++; splx = sunshinePrivateLineList.get(x); sply = sunshinePrivateLineList.get(y); } else{ data.append("<value xid='" + number + "'>" + sdf.format(sply.getEndDate()) + "</value>"); y++; sply = sunshinePrivateLineList.get(y); } } data.append("</series>"); data.append("<graphs>"); String portfolioName = this.sunshinePrivate.getPortfolioName(); //基金名称 //data.append("<graph gid='3' title='和美1期' balloon_text='{value}'>"); data.append("<graph gid='3' title='" + portfolioName + "' balloon_text='{value}'>"); data.append("<value xid='" + 0 + "'>" + nf.format(sunshinePrivateLineList.get(cnt).getYield().doubleValue()) + "</value>"); splx = sunshinePrivateLineList.get(0); sply = sunshinePrivateLineList.get(cnt); for (x=1, y=cnt, number=0; x < cnt || y < sunshinePrivateLineList.size(); number++) { /* * 和美1期 与沪深300比较 * * 和美1期补数据,所补数据为前一天数据 */ splx = sunshinePrivateLineList.get(x); sply = sunshinePrivateLineList.get(y); if (sply.getEndDate().compareTo(splx.getEndDate()) < 0) { data.append("<value xid='" + number + "'>" + nf.format(sply.getYield().doubleValue()) + "</value>"); y++; } else if(sply.getEndDate().compareTo(splx.getEndDate()) == 0){ data.append("<value xid='" + number + "'>" + nf.format(sply.getYield().doubleValue()) + "</value>"); x++;y++; } else{ data.append("<value xid='" + number + "'>" + nf.format(sply.getYield().doubleValue()) + "</value>"); x++; } } data.append("</graph>"); data.append("<graph gid='4' title='沪深300' balloon_text='{value}'>"); data.append("<value xid='" + 0 + "'>" + nf.format(sunshinePrivateLineList.get(0).getYield().doubleValue()) + "</value>"); splx = sunshinePrivateLineList.get(0); sply = sunshinePrivateLineList.get(cnt); for (x=1, y=cnt, number=0; x < cnt || y < sunshinePrivateLineList.size(); number++) { /* * 沪深300 与和美1期比较 * * 沪深300补数据,所补数据为前一天数据 */ splx = sunshinePrivateLineList.get(x); sply = sunshinePrivateLineList.get(y); if (splx.getEndDate().compareTo(sply.getEndDate()) < 0) { data.append("<value xid='" + number + "'>" + nf.format(splx.getYield().doubleValue()) + "</value>"); x++; } else if(splx.getEndDate().compareTo(sply.getEndDate()) == 0){ data.append("<value xid='" + number + "'>" + nf.format(splx.getYield().doubleValue()) + "</value>"); x++;y++; } else{ data.append("<value xid='" + number + "'>" + nf.format(splx.getYield().doubleValue()) + "</value>"); y++; } } data.append("</graph>"); data.append("</graphs>"); data.append("</chart>"); try { getResponse().setCharacterEncoding("utf-8"); getResponse().getWriter().print(data.toString()); } catch (IOException e) { log.debug("数据传输错误" + e); } }