[测评系统]--测评系统核心代码库
林致杰
2022-08-02 54aecc07ca143841e66e25dc587bd2629fa0ba8f
src/main/java/com/ots/project/tool/report/MAQTR/chart/MAQTRChart.java
@@ -34,9 +34,9 @@
    public static void main(String[] args) throws IOException {
        try {
            OutputStream os = new FileOutputStream("C:\\Users\\大头\\Desktop\\MAQ组别报告\\林_PAQ_IA_CN2.docx");
            XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage("C:\\Users\\大头\\Desktop\\MAQ组别报告\\终稿【0607中文版】MAQ组别对比报告.docx"));
            XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage("C:\\Users\\大头\\Desktop\\MAQ组别报告\\终稿【0607中文版】MAQ组别对比报告(1).docx"));
            String fileName = "C:\\Users\\大头\\Desktop\\MAQ组别报告\\组别对比报告测试数据.xlsx";
            String fileName = "C:\\Users\\大头\\Desktop\\MAQ组别报告\\MAQ组别导入数据模板 (2).xlsx";
            //变更图表数据
            changeMAQTRChart(document,fileName);
            document.write(os);
@@ -62,20 +62,26 @@
                XSSFSheet sheet = wb.getSheetAt(i);
                String companyName = sheet.getRow(1).getCell(0).getStringCellValue();
                Map<Integer,List<Double>> map = new HashMap<>();
                //统计人数
                int person = 0;
                //行
                for (int j = 1; j <= sheet.getLastRowNum(); j++) {
                    XSSFRow row = sheet.getRow(j);
                    if(row == null){
                        break;
                    }
                    //列
                    for (int k = 1; k < row.getLastCellNum(); k++) {
                        XSSFCell cell = row.getCell(k);
/*
                        if (CellType.NUMERIC == cell.getCellType()) {
                            System.out.println(cell.getNumericCellValue());
                        } else if (CellType.STRING == cell.getCellType()) {
                            System.out.println(cell.getStringCellValue());
                        if(cell == null){
                            break;
                        }
*/
                        //table1 多个答题结果处理
                        //不是分数 忽略
                        switch (cell.getCellType()) {
                            case STRING:
                                break;
                        }
                        //归类个性
                        if(map.get(k) != null){
                            map.get(k).add(cell.getNumericCellValue());
                        }else {
@@ -84,7 +90,15 @@
                            map.put(k,list);
                        }
                    }
                    person++;
                }
                //设置人数
                List<Double> list = new ArrayList<>();
                list.add(Double.valueOf(person));
                map.put(999,list);
                //设置不同团队的数据
                dataMap.put(companyName,map);
            }
            //平均值集合
@@ -139,8 +153,8 @@
                //动态值
                for (Map.Entry<String,Map<Integer,Double>> map : dataMap.entrySet()) {
                    SeriesData valSeriesData = new SeriesData();
                    valSeriesData.setName(map.getKey());
                    Map<Integer,Double> valMap = map.getValue();
                    valSeriesData.setName(map.getKey()+"(n="+ valMap.get(999).intValue() +")");
                    List<RowData> valRowDataList = new ArrayList<>();
                    for (int i = oneIndex; i > 0; i--) {
                        RowData rowData = new RowData();
@@ -196,8 +210,8 @@
                //动态值
                for (Map.Entry<String,Map<Integer,Double>> map : dataMap.entrySet()) {
                    SeriesData valSeriesData = new SeriesData();
                    valSeriesData.setName(map.getKey());
                    Map<Integer,Double> valMap = map.getValue();
                    valSeriesData.setName(map.getKey()+"(n="+valMap.get(999).intValue()+")");
                    List<RowData> valRowDataList = new ArrayList<>();
                    for (int i = twoIndex; i > oneIndex; i--) {
                        RowData rowData = new RowData();
@@ -498,6 +512,9 @@
            //log.error("lastRowNum:{},size:{}",lastRowNum,size);
            if (lastRowNum > size) {
                for (int idx = lastRowNum; idx > size; idx--) {
                    if(sheet.getRow(idx) == null){
                        continue;
                    }
                    sheet.removeRow(sheet.getRow(idx));
                }
            }