From 737593fce20bea24820ab58d7e1227b05880ab8a Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 26 三月 2025 10:18:06 +0800
Subject: [PATCH] 电池组统计分析的导出

---
 src/main/java/com/whyc/service/EchartPictureDowloadService.java |   90 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 90 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/service/EchartPictureDowloadService.java b/src/main/java/com/whyc/service/EchartPictureDowloadService.java
index 3313e95..e505053 100644
--- a/src/main/java/com/whyc/service/EchartPictureDowloadService.java
+++ b/src/main/java/com/whyc/service/EchartPictureDowloadService.java
@@ -75,9 +75,99 @@
                 ExportElectricityPrice(req,resp);			//鐢典环缁熻鎶ヨ〃
             }else if("A059".equalsIgnoreCase(pageName)){
                 ExportA059(req,resp);     //A059涓�浣撴満瀵煎嚭鎶ヨ〃
+            }else if("eleAnalyse".equalsIgnoreCase(pageName)){
+                Exportele_eleAnalyseTable(req,resp);     //鐢垫睜缁勭粺璁″垎鏋愭煡璇�
             }
         }
     }
+    //鐢垫睜缁勭粺璁″垎鏋愭煡璇�
+    private void Exportele_eleAnalyseTable( HttpServletRequest req,HttpServletResponse resp
+                                          ) {
+        String excelTitle="鐢垫睜缁勭粺璁℃煡璇�";
+        String pictureName="鐢垫睜缁勭粺璁″垎鏋愬浘";
+        String[] arr_Th=req.getParameter("arr_Th").split(",");
+        String[] arr_Td=req.getParameter("arr_Td").split(",");
+        String[] echart_url=req.getParameter("echart_url").split(",");
+        int rowindex=4;
+        //System.out.println(arr_Td.length+"##"+arr_Th.length);
+        //瀹氫箟涓�涓伐浣滅翱
+        HSSFWorkbook workbook = new HSSFWorkbook();
+        HSSFSheet sheet = workbook.createSheet(excelTitle);
+        // 浜х敓琛ㄦ牸鏍囬琛�
+        HSSFRow title = sheet.createRow(0);
+        HSSFCell titlecell = title.createCell(0);
+        HSSFRichTextString tname = new HSSFRichTextString(excelTitle);
+        //System.out.print(text+"\t");
+        titlecell.setCellValue(tname);
+        if(arr_Th!=null && arr_Th.length>0){
+            HSSFRow row0 = sheet.createRow(1);
+            for(int i=0;i<arr_Th.length;i++){
+                HSSFCell cell = row0.createCell(i);
+                HSSFRichTextString text = new HSSFRichTextString(arr_Th[i]);
+                //System.out.print(text+"\t");
+                cell.setCellValue(text);
+            }
+
+            if(arr_Td!=null && arr_Td.length>0){
+                int rowNum=(int)(Math.ceil((double)arr_Td.length/arr_Th.length));		//鎬昏鏁�
+                int index=0;
+                //System.out.println("鎬诲叡鏈�"+rowNum+"琛�");
+                for(int i=1;i<=rowNum;i++){
+                    HSSFRow row = sheet.createRow(i+1);
+                    for(int j=0;j<arr_Th.length && index<arr_Td.length;j++){
+                        HSSFCell cell = row.createCell(j);
+                        HSSFRichTextString text = new HSSFRichTextString(arr_Td[index++]);
+                        //System.out.print((i-1)*rowNum+j+"\t");
+                        //System.out.print(text+"\t");
+                        cell.setCellValue(text);
+                    }
+                }
+                rowindex=rowNum+3;
+            }
+        }
+        HSSFRow row = sheet.createRow(rowindex);
+        HSSFCell cell = row.createCell(0);
+        HSSFRichTextString text = new HSSFRichTextString(pictureName);
+        //System.out.print((i-1)*rowNum+j+"\t");
+        //System.out.print(text+"\t");
+        cell.setCellValue(text);
+        if(echart_url!=null && echart_url.length>0){
+            List<byte[]> bytes=new ArrayList<byte[]>();
+            try {
+                bytes.add(new BASE64Decoder().decodeBuffer(echart_url[1]));
+                HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
+                for (int i = 0; i < bytes.size(); i++) {
+                    HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 512, 255,
+                            (short) 0, rowindex+1, (short) 0, 1000 * (2 + 1));
+                    anchor.setAnchorType(3);
+                    // 鎻掑叆鍥剧墖
+                    patriarch.createPicture(
+                            anchor,
+                            workbook.addPicture(bytes.get(i),
+                                    HSSFWorkbook.PICTURE_TYPE_PNG)).resize(1);
+                }
+
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+        // 杞爜闃叉涔辩爜
+        try {
+            resp.addHeader("Content-Disposition", "attachment;filename="
+                    + new String(excelName.getBytes("UTF-8"), "ISO8859-1")
+                    + ".xls");
+            OutputStream out = resp.getOutputStream();
+            workbook.write(out);
+            out.close();
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
     //瀵煎嚭鍗曚釜鍥捐〃
     private void chargeExcelExprot(HttpServletRequest req,
                                    HttpServletResponse resp) {

--
Gitblit v1.9.1