diff --git a/Doc/全省及州市县区人口与教育报告集20241023/133个县区报告2022/县区研究报告/昭通市各县市报告11/盐津县/盐津县教育发展规模数据收集表-20240607.xlsx b/Doc/全省及州市县区人口与教育报告集20241023/133个县区报告2022/县区研究报告/昭通市各县市报告11/盐津县/盐津县教育发展规模数据收集表-20240607.xlsx index bcc7f0eb..90ae69f4 100644 Binary files a/Doc/全省及州市县区人口与教育报告集20241023/133个县区报告2022/县区研究报告/昭通市各县市报告11/盐津县/盐津县教育发展规模数据收集表-20240607.xlsx and b/Doc/全省及州市县区人口与教育报告集20241023/133个县区报告2022/县区研究报告/昭通市各县市报告11/盐津县/盐津县教育发展规模数据收集表-20240607.xlsx differ diff --git a/Doc/待处理/区/【1】学前幼儿入园总量预测/学前幼儿入园总量预测.xlsx b/Doc/待处理/区/【1】学前幼儿入园总量预测/学前幼儿入园总量预测.xlsx index 26701c99..68ed89ed 100644 Binary files a/Doc/待处理/区/【1】学前幼儿入园总量预测/学前幼儿入园总量预测.xlsx and b/Doc/待处理/区/【1】学前幼儿入园总量预测/学前幼儿入园总量预测.xlsx differ diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java b/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java index 1c8c5c7c..83abd649 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/Area/A1.java @@ -98,60 +98,74 @@ public class A1 { List> dataList = ExcelKit.readSecondTable(sourceExcel, 0, "自动计算招生数、在校生数", 2, "K"); + //这个工作表有四个蓝色列:D:预测总招生数,E:修正城区招生A,F:修正镇区招生B,G:修正乡村招生C + //有时,有也三个蓝色列:D:预测总招生数,E:修正县城内招生,G:修正县城外招生 + //处理办法:先判断是4个的还是3个的,如果是3个的,就把修正县城外招生拆分开两项,第一项=修正县城外招生*30%,第二项=修正县城外招生- 第一项 + //至于是4个还是3个的,可以通过获取第二个table的列宽来获取,4列的时候,整个表的列数应该是11列,3列的时候,整个表的列数应该是9列 + //取出第一行 + if (dataList.isEmpty()) continue; + List x = dataList.getFirst(); + int cnt = 0; + for (String s : x) if (s == null) cnt++; + int colsCount = x.size() - cnt; + System.out.println("列数=" + colsCount); + //入园总数 - for (List stringList : dataList){ + for (List stringList : dataList) { //年份 int year = Integer.parseInt(stringList.get(0)); - //3预测总招生数 - String zss = stringList.get(3).split("\\.")[0]; + //D预测总招生数 + String v = stringList.get(ExcelKit.transLetter2Num("D")).split("\\.")[0]; Row outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), - "总入园数", "", zss, "", areaName, cityName), dataStyle); + ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "总入园数", "", v, "", areaName, cityName), dataStyle); } + //2022入园基数 for (List ignored : dataList) { //年份 int year = 2022; - //3预测总招生数 - int zss = Integer.parseInt(dataList.getFirst().get(3).split("\\.")[0]); + //D预测总招生数 + int v = Integer.parseInt(dataList.getFirst().get(ExcelKit.transLetter2Num("D")).split("\\.")[0]); Row outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), - "2022年基数", "", String.valueOf(zss), "", areaName, cityName), dataStyle); + ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "2022年基数", "", String.valueOf(v), "", areaName, cityName), dataStyle); } //城区 for (List stringList : dataList) { //年份 - int year = Integer.parseInt(stringList.get(0)); - //4修正城区招生A - int v = Integer.parseInt(stringList.get(4).split("\\.")[0]); + int year = Integer.parseInt(stringList.getFirst()); + //E:修正城区招生A 修正县城内招生 + int v = Integer.parseInt(stringList.get(ExcelKit.transLetter2Num("E")).split("\\.")[0]); Row outRow = outSheet.createRow(++rowIndex); ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "", "城区", "", String.valueOf(v), areaName, cityName), dataStyle); - } - //镇区 + //修正镇区招生B 修正县城外招生*30% for (List stringList : dataList) { //年份 - int year = Integer.parseInt(stringList.get(0)); - - int v = Integer.parseInt(stringList.get(5).split("\\.")[0]); + int year = Integer.parseInt(stringList.getFirst()); + //F:修正镇区招生B 修正县城内招生 + int v = Integer.parseInt(stringList.get(ExcelKit.transLetter2Num("F")).split("\\.")[0]); + if (colsCount == 9) { + v = (int) (v * 0.3);//乘以0.3 + } Row outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), - "", "镇区", "", String.valueOf(v), areaName, cityName), dataStyle); - + ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "", "镇区", "", String.valueOf(v), areaName, cityName), dataStyle); } - - //乡村 + // 修正乡村招生C 修正县城外招生-修正县城外招生*30% for (List stringList : dataList) { //年份 - int year = Integer.parseInt(stringList.get(0)); - int v = Integer.parseInt(stringList.get(6).split("\\.")[0]); + int year = Integer.parseInt(stringList.getFirst()); + //G:6修正乡村招生G + int v = Integer.parseInt(stringList.get(ExcelKit.transLetter2Num("G")).split("\\.")[0]); + if (colsCount == 9) { + v = Integer.parseInt(stringList.get(ExcelKit.transLetter2Num("F")).split("\\.")[0]); + int d = (int) (v * 0.3);//乘以0.3 + v = v - d;//剩下70% + } Row outRow = outSheet.createRow(++rowIndex); - ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), - "", "乡村", "", String.valueOf(v), areaName, cityName), dataStyle); - + ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "", "乡村", "", String.valueOf(v), areaName, cityName), dataStyle); } } } diff --git a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java index aa5115e5..ef0c69fc 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java @@ -593,14 +593,12 @@ public class ExcelKit { List rowData = dataList.get(i); if (rowData.isEmpty()) { dataList.remove(i); - continue; - } - String firstCell = rowData.getFirst(); - if (rowData.size() < tableWidth || !NumberUtil.isNumber(firstCell)) { + }else if(rowData.getFirst()==null || !rowData.getFirst().matches("[0-9]+")){ dataList.remove(i); - break; } } + //printTable(dataList); + //System.out.println("==========================================="); return dataList; }