lxw
2023-02-13 8fdaa589b3780ce6561d7f212faf2bd1d7544ad1
内阻数据导出
1个文件已修改
77 ■■■■■ 已修改文件
src/main/java/com/whyc/service/ExcelExportService.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ExcelExportService.java
@@ -261,8 +261,7 @@
        XSSFSheet sheet = wb.createSheet("数据总表");
        //图片元素
        XSSFDrawing patriarch = sheet.createDrawingPatriarch();
        int rowNumSheet = 0;
        int rowNumSheet = 1;
        //插入图片
        int picNum = 0;
        String[] picName =new String[]{"单体电压折线图","单体内阻折线图","单体温度折线图"};
@@ -282,38 +281,11 @@
        RESDataInfo resDataInfo =resService.readFileData(filePath);
        //从文件中获取数据
        List<RESData> list = resDataInfo.resDatas;
        XSSFSheet sheet1 = wb.createSheet("内阻数据");
        //新建行
        //抬头
        int rowNum = 0;
        sheet1.createRow(rowNum).createCell(0).setCellValue("测试数据(内阻)");
        rowNum++;
        //属性栏
        String[] rowName =new String[]{"测试时间"};
        XSSFRow row = sheet1.createRow(rowNum);
        for (int i=0;i<rowName.length;i++){
            row.createCell(i).setCellValue(rowName[i]);
        }
        int battNum=list.get(0).getBattSum();//单体个数
        for(int i=0;i<battNum;i++){
            row.createCell(rowName.length+i).setCellValue("#"+Integer.valueOf(i+1));
        }
        rowNum++;
        //数据栏
        for (int i = 0; i < list.size(); i++) {
            sheet1.createRow(rowNum);  //创建行
            RESData resData=list.get(i);
            float[] monomerRes=resData.getMonomerRes();
            sheet1.getRow(rowNum).createCell(0).setCellValue(resData.getData_Time());
            for (int k = 0;k<battNum;k++){
                sheet1.getRow(rowNum).createCell(k+1).setCellValue(monomerRes[i]);
            }
            rowNum++;
        }
        rowNum++;
        //创建不同sheet
        createBresSheet(wb,battNum,list,1);//创建内阻数据
        createBresSheet(wb,battNum,list,2);//创建温度数据
        createBresSheet(wb,battNum,list,3);//创建电压数据
        try {
            // 转码防止乱码
            resp.addHeader("Content-Disposition", "attachment;filename="
@@ -328,7 +300,46 @@
            e.printStackTrace();
        }
    }
    //bres中内阻数据/温度数据/单体电压数据放在不同的sheet中
    public void createBresSheet(XSSFWorkbook wb,int battNum,List<RESData> list,int type){
        String sheetName="";
        String testName="";
        switch (type){
            case 1:sheetName= "内阻数据";testName="测试数据(内阻)";break;
            case 2:sheetName= "温度数据";testName="测试数据(温度)";break;
            case 3:sheetName= "电压数据";testName="测试数据(电压)";break;
        }
        XSSFSheet sheet1 = wb.createSheet(sheetName);
        //抬头
        int rowNum = 0;
        sheet1.createRow(rowNum).createCell(0).setCellValue(testName);
        rowNum++;
        //属性栏
        XSSFRow row = sheet1.createRow(rowNum);
        row.createCell(0).setCellValue("测试时间");
        for(int i=0;i<battNum;i++){
            row.createCell(1+i).setCellValue("#"+Integer.valueOf(i+1));
        }
        rowNum++;
        float[] datas=new float[]{};
        //数据栏
        for (int i = 0; i < list.size(); i++) {
            sheet1.createRow(rowNum);  //创建行
            RESData resData= list.get(i);
            switch (type){
                case 1:datas= resData.getMonomerRes();break;
                case 2:datas= resData.getMonomerTemp();break;
                case 3:datas= resData.getMonomerVol();break;
            }
            sheet1.getRow(rowNum).createCell(0).setCellValue(formartDate(resData.getData_Time(),"yyyy-MM-dd HH:mm:ss"));
            for (int k = 0;k<battNum;k++){
                sheet1.getRow(rowNum).createCell(k+1).setCellValue(datas[i]);
            }
            rowNum++;
        }
        rowNum++;
    }
    /**
     * 将日期格式转换成指定的字符串格式