| | |
| | | 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); |
| | |
| | | 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 { |
| | |
| | | map.put(k,list); |
| | | } |
| | | } |
| | | person++; |
| | | } |
| | | |
| | | //设置人数 |
| | | List<Double> list = new ArrayList<>(); |
| | | list.add(Double.valueOf(person)); |
| | | map.put(999,list); |
| | | |
| | | //设置不同团队的数据 |
| | | dataMap.put(companyName,map); |
| | | } |
| | | //平均值集合 |
| | |
| | | //动态值 |
| | | 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(); |
| | |
| | | //动态值 |
| | | 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(); |
| | |
| | | //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)); |
| | | } |
| | | } |