main
黄海 8 months ago
parent dba9d4c9ca
commit 44a76d1448

@ -98,60 +98,74 @@ public class A1 {
List<List<String>> dataList = ExcelKit.readSecondTable(sourceExcel, 0, "自动计算招生数、在校生数", List<List<String>> dataList = ExcelKit.readSecondTable(sourceExcel, 0, "自动计算招生数、在校生数",
2, "K"); 2, "K");
//这个工作表有四个蓝色列D:预测总招生数E:修正城区招生AF:修正镇区招生BG:修正乡村招生C
//有时有也三个蓝色列D:预测总招生数E:修正县城内招生G:修正县城外招生
//处理办法先判断是4个的还是3个的如果是3个的就把修正县城外招生拆分开两项第一项=修正县城外招生*30%,第二项=修正县城外招生- 第一项
//至于是4个还是3个的可以通过获取第二个table的列宽来获取,4列的时候整个表的列数应该是11列3列的时候整个表的列数应该是9列
//取出第一行
if (dataList.isEmpty()) continue;
List<String> 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<String> stringList : dataList){ for (List<String> stringList : dataList) {
//年份 //年份
int year = Integer.parseInt(stringList.get(0)); int year = Integer.parseInt(stringList.get(0));
//3预测总招生数 //D预测总招生数
String zss = stringList.get(3).split("\\.")[0]; String v = stringList.get(ExcelKit.transLetter2Num("D")).split("\\.")[0];
Row outRow = outSheet.createRow(++rowIndex); Row outRow = outSheet.createRow(++rowIndex);
ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "总入园数", "", v, "", areaName, cityName), dataStyle);
"总入园数", "", zss, "", areaName, cityName), dataStyle);
} }
//2022入园基数 //2022入园基数
for (List<String> ignored : dataList) { for (List<String> ignored : dataList) {
//年份 //年份
int year = 2022; int year = 2022;
//3预测总招生数 //D预测总招生数
int zss = Integer.parseInt(dataList.getFirst().get(3).split("\\.")[0]); int v = Integer.parseInt(dataList.getFirst().get(ExcelKit.transLetter2Num("D")).split("\\.")[0]);
Row outRow = outSheet.createRow(++rowIndex); Row outRow = outSheet.createRow(++rowIndex);
ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "2022年基数", "", String.valueOf(v), "", areaName, cityName), dataStyle);
"2022年基数", "", String.valueOf(zss), "", areaName, cityName), dataStyle);
} }
//城区 //城区
for (List<String> stringList : dataList) { for (List<String> stringList : dataList) {
//年份 //年份
int year = Integer.parseInt(stringList.get(0)); int year = Integer.parseInt(stringList.getFirst());
//4修正城区招生A //E:修正城区招生A 修正县城内招生
int v = Integer.parseInt(stringList.get(4).split("\\.")[0]); int v = Integer.parseInt(stringList.get(ExcelKit.transLetter2Num("E")).split("\\.")[0]);
Row outRow = outSheet.createRow(++rowIndex); Row outRow = outSheet.createRow(++rowIndex);
ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year),
"", "城区", "", String.valueOf(v), areaName, cityName), dataStyle); "", "城区", "", String.valueOf(v), areaName, cityName), dataStyle);
} }
//镇区 //修正镇区招生B 修正县城外招生*30%
for (List<String> stringList : dataList) { for (List<String> stringList : dataList) {
//年份 //年份
int year = Integer.parseInt(stringList.get(0)); int year = Integer.parseInt(stringList.getFirst());
//F:修正镇区招生B 修正县城内招生
int v = Integer.parseInt(stringList.get(5).split("\\.")[0]); 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); Row outRow = outSheet.createRow(++rowIndex);
ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "", "镇区", "", String.valueOf(v), areaName, cityName), dataStyle);
"", "镇区", "", String.valueOf(v), areaName, cityName), dataStyle);
} }
// 修正乡村招生C 修正县城外招生-修正县城外招生*30%
//乡村
for (List<String> stringList : dataList) { for (List<String> stringList : dataList) {
//年份 //年份
int year = Integer.parseInt(stringList.get(0)); int year = Integer.parseInt(stringList.getFirst());
int v = Integer.parseInt(stringList.get(6).split("\\.")[0]); //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); Row outRow = outSheet.createRow(++rowIndex);
ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), ExcelKit.putData(outRow, Arrays.asList(String.valueOf(year), "", "乡村", "", String.valueOf(v), areaName, cityName), dataStyle);
"", "乡村", "", String.valueOf(v), areaName, cityName), dataStyle);
} }
} }
} }

@ -593,14 +593,12 @@ public class ExcelKit {
List<String> rowData = dataList.get(i); List<String> rowData = dataList.get(i);
if (rowData.isEmpty()) { if (rowData.isEmpty()) {
dataList.remove(i); dataList.remove(i);
continue; }else if(rowData.getFirst()==null || !rowData.getFirst().matches("[0-9]+")){
}
String firstCell = rowData.getFirst();
if (rowData.size() < tableWidth || !NumberUtil.isNumber(firstCell)) {
dataList.remove(i); dataList.remove(i);
break;
} }
} }
//printTable(dataList);
//System.out.println("===========================================");
return dataList; return dataList;
} }

Loading…
Cancel
Save