| | |
| | | font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); |
| | | cellStyle.setFont(font); |
| | | |
| | | int rowNumSheet = 0; |
| | | rowNumSheet+=2; |
| | | //插入图片 |
| | | int picNum = 0; |
| | | String[] picName = new String[]{ |
| | | "电池电流折线图","组端电压折线图","测试容量折线图","单体电压折线图" |
| | | }; |
| | | if (picName.length==bytes.size()){ |
| | | for(int i=0;i<picName.length;i++){ |
| | | sheet.createRow(rowNumSheet-1); |
| | | sheet.getRow(rowNumSheet-1).createCell(0).setCellValue(picName[i]); |
| | | //rowNum++; |
| | | HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 512, 255,(short) 0, rowNumSheet, (short) 10, rowNumSheet+27); |
| | | anchor.setAnchorType(3); |
| | | patriarch.createPicture(anchor,wb.addPicture(bytes.get(picNum),HSSFWorkbook.PICTURE_TYPE_PNG)).resize(1); |
| | | picNum ++; |
| | | rowNumSheet+=27; |
| | | } |
| | | } |
| | | |
| | | HSSFSheet sheet1 = wb.createSheet("数据"); |
| | | //新建行 |
| | | |
| | | //抬头 |
| | | int rowNum = 0; |
| | | HSSFRow rowTitle = sheet1.createRow(rowNum); |
| | | HSSFCell cellTitle = rowTitle.createCell(0); |
| | | cellTitle.setCellValue("一体机充放电数据"); |
| | | cellTitle.setCellStyle(cellStyle); |
| | | rowNum++; |
| | | |
| | | FboDataHeadStart start = fboDataInf.fboDataStart; |
| | | HSSFRow rowHand = sheet1.createRow(rowNum); |
| | | rowHand.createCell(0).setCellValue("电池名称:"); |
| | | rowHand.createCell(1).setCellValue(start.battNameStr); |
| | | rowHand.createCell(2).setCellValue("电池品牌:"); |
| | | rowHand.createCell(3).setCellValue(start.battBrandStr); |
| | | rowNum++; |
| | | |
| | | |
| | | //属性栏 |
| | | HSSFRow row = sheet1.createRow(rowNum); |
| | | row.createCell(0).setCellValue("测试时间"); //创建单元格 |
| | | row.createCell(1).setCellValue("总电压"); |
| | | row.createCell(2).setCellValue("测试容量"); |
| | | row.createCell(3).setCellValue("剩余容量"); |
| | | for(int i=0;i<list.get(0).SingleVol.length;i++){ |
| | | row.createCell(4+i).setCellValue("#"+Integer.valueOf(i+1)); |
| | | } |
| | | rowNum++; |
| | | //数据栏 |
| | | for (int i = 0; i < list.size(); i++) { |
| | | sheet1.createRow(rowNum); //创建行 |
| | | for(int j=0;j<5;j++){ |
| | | FboData fbo=list.get(i); |
| | | sheet1.getRow(rowNum).createCell(0).setCellValue(fbo.m_TestTime.hms()); |
| | | sheet1.getRow(rowNum).createCell(1).setCellValue(fbo.SumVoltage); |
| | | sheet1.getRow(rowNum).createCell(2).setCellValue(fbo.testCap); |
| | | sheet1.getRow(rowNum).createCell(3).setCellValue(fbo.residualCap); |
| | | for (int k = 0;k<list.get(0).SingleVol.length;k++){ |
| | | sheet1.getRow(rowNum).createCell(4+k).setCellValue(fbo.SingleVol[k]); |
| | | } |
| | | } |
| | | i=i+5-1; |
| | | rowNum++; |
| | | } |
| | | |
| | | rowNum++; |
| | | |
| | | try { |
| | | // 转码防止乱码 |
| | | resp.addHeader("Content-Disposition", "attachment;filename=" |
| | | + new String(excelName.getBytes("UTF-8"), "ISO8859-1") |
| | | + ".xls"); |
| | | OutputStream out = resp.getOutputStream(); |
| | | wb.write(out); |
| | | out.close(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | public void export1(HttpServletRequest req, HttpServletResponse resp){ |
| | | |
| | | String curr_echart = req.getParameter("curr_echart"); //电池电流折线图 |
| | | String groupVol_echart = req.getParameter("groupVol_echart"); //组端电压折线图 |
| | | String cap_echart = req.getParameter("cap_echart"); //测试容量折线图 |
| | | String vol_echart = req.getParameter("vol_echart"); //单体电压折线图 |
| | | |
| | | |
| | | String filePath = req.getParameter("filePath"); |
| | | FboDataInf fboDataInf = new FboDataInf(); |
| | | fboDataInf.readFboFile(filePath); |
| | | |
| | | List<FboData> list = fboDataInf.fboData; |
| | | |
| | | List<byte[]> bytes = new ArrayList<>(); |
| | | |
| | | try { |
| | | if (ServletUtils.isNotNull(curr_echart)) { |
| | | String[] url = curr_echart.split(","); |
| | | bytes.add(new BASE64Decoder().decodeBuffer(url[1])); |
| | | }if (ServletUtils.isNotNull(groupVol_echart)) { |
| | | String[] url = groupVol_echart.split(","); |
| | | bytes.add(new BASE64Decoder().decodeBuffer(url[1])); |
| | | }if (ServletUtils.isNotNull(cap_echart)) { |
| | | String[] url = cap_echart.split(","); |
| | | bytes.add(new BASE64Decoder().decodeBuffer(url[1])); |
| | | }if (ServletUtils.isNotNull(vol_echart)) { |
| | | String[] url = vol_echart.split(","); |
| | | bytes.add(new BASE64Decoder().decodeBuffer(url[1])); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | //当前日期 |
| | | String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); |
| | | String excelName = "FGCD-"+nowFormat; |
| | | HSSFWorkbook wb = new HSSFWorkbook(); |
| | | |
| | | HSSFSheet sheet = wb.createSheet("Sheet1"); |
| | | |
| | | //图片元素 |
| | | HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); |
| | | |
| | | //字体格式-加粗 |
| | | HSSFCellStyle cellStyle = wb.createCellStyle(); |
| | | HSSFFont font = wb.createFont(); |
| | | font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); |
| | | cellStyle.setFont(font); |
| | | |
| | | int rowNumSheet = 0; |
| | | |
| | | |
| | | //新建行 |
| | | //抬头 |
| | | int rowNum = 0; |
| | |
| | | rowHand.createCell(0).setCellValue("电池名称:"); |
| | | rowHand.createCell(1).setCellValue(start.battNameStr); |
| | | rowHand.createCell(2).setCellValue("电池品牌:"); |
| | | rowHand.createCell(1).setCellValue(start.battBrandStr); |
| | | rowHand.createCell(3).setCellValue(start.battBrandStr); |
| | | rowNum++; |
| | | |
| | | |
| | |
| | | } |
| | | rowNum++; |
| | | //数据栏 |
| | | if(5!=0){ |
| | | for (int i = 0; i < list.size(); i++) { |
| | | sheet.createRow(rowNum); //创建行 |
| | | for(int j=0;j<5;j++){ |
| | | FboData fbo=list.get(i+j); |
| | | sheet.getRow(rowNum).createCell(0).setCellValue(fbo.m_TestTime.hms()); |
| | | sheet.getRow(rowNum).createCell(1).setCellValue(fbo.SumVoltage); |
| | | sheet.getRow(rowNum).createCell(2).setCellValue(fbo.testCap); |
| | | sheet.getRow(rowNum).createCell(3).setCellValue(fbo.residualCap); |
| | | for (int k = 0;k<list.get(0).SingleVol.length;k++){ |
| | | sheet.getRow(rowNum).createCell(4+k).setCellValue(fbo.SingleVol[k]); |
| | | } |
| | | for (int i = 0; i < list.size(); i++) { |
| | | sheet.createRow(rowNum); //创建行 |
| | | for(int j=0;j<5;j++){ |
| | | FboData fbo=list.get(i); |
| | | sheet.getRow(rowNum).createCell(0).setCellValue(fbo.m_TestTime.hms()); |
| | | sheet.getRow(rowNum).createCell(1).setCellValue(fbo.SumVoltage); |
| | | sheet.getRow(rowNum).createCell(2).setCellValue(fbo.testCap); |
| | | sheet.getRow(rowNum).createCell(3).setCellValue(fbo.residualCap); |
| | | for (int k = 0;k<list.get(0).SingleVol.length;k++){ |
| | | sheet.getRow(rowNum).createCell(4+k).setCellValue(fbo.SingleVol[k]); |
| | | } |
| | | i=i+5-1; |
| | | rowNum++; |
| | | } |
| | | i=i+5-1; |
| | | rowNum++; |
| | | } |
| | | |
| | | rowNum+=2; |
| | | //插入图片 |
| | | int picNum = 0; |
| | |
| | | rowNum+=27; |
| | | } |
| | | } |
| | | |
| | | rowNum++; |
| | | |
| | | try { |