|
|
|
@ -72,31 +72,54 @@ public class C11 {
|
|
|
|
|
//排序后的图表
|
|
|
|
|
List<XWPFChart> charts = ExcelKit.getSortListForXWPFChart(doc.getCharts());
|
|
|
|
|
|
|
|
|
|
//数据在图表2
|
|
|
|
|
int firstChartNumber = 36,secondChartNumber = 37;
|
|
|
|
|
//数据在图表36,教职工总量
|
|
|
|
|
int firstChartNumber = 36, secondChartNumber = 37;
|
|
|
|
|
|
|
|
|
|
XSSFWorkbook workbook = charts.get(firstChartNumber).getWorkbook();
|
|
|
|
|
List<List<String>> source1 = ExcelKit.readSheet(workbook, 6);//从2017年开始
|
|
|
|
|
//占地面积37
|
|
|
|
|
XSSFWorkbook workbook = charts.get(firstChartNumber - 1).getWorkbook();
|
|
|
|
|
List<List<String>> source1 = ExcelKit.readSheet(workbook, 1);
|
|
|
|
|
//年份,学前,小学,初中,高中
|
|
|
|
|
// 0 1 2 3 4
|
|
|
|
|
//所有相关2022基数的列都使用2022的数据
|
|
|
|
|
//学前教职工2022基数 小学教职工2022基数 初中教职工2022基数 高中用房2022年基数
|
|
|
|
|
//取出第一条数据,即2022年数据
|
|
|
|
|
List<String> firRow = source1.getFirst();
|
|
|
|
|
String xqjzg = firRow.get(1);//学前教职工2022基数
|
|
|
|
|
String xxjzg = firRow.get(2);//小学教职工2022基数
|
|
|
|
|
String zxjzg = firRow.get(3);//初中教职工2022基数
|
|
|
|
|
String gxjzg = firRow.get(4);//高中教职工2022基数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
workbook = charts.get(secondChartNumber - 1).getWorkbook();
|
|
|
|
|
List<List<String>> source2 = ExcelKit.readSheet(workbook, 1);
|
|
|
|
|
//年份,学前,小学,初中,高中
|
|
|
|
|
// 0 1 2 3 4
|
|
|
|
|
List<String> secRow = source2.getFirst();
|
|
|
|
|
String xqjzgMJ = secRow.get(1);//学前面积2023年基数
|
|
|
|
|
String xxjzgMJ = secRow.get(2);//小学面积2023年基数
|
|
|
|
|
String zxjzgMJ = secRow.get(3);//初中面积2023年基数
|
|
|
|
|
String gxjzgMJ = secRow.get(4);//高中面积2023年基数
|
|
|
|
|
|
|
|
|
|
workbook = charts.get(firstChartNumber).getWorkbook();
|
|
|
|
|
List<List<String>> source3 = ExcelKit.readSheet(workbook, 2);//从2023年开始
|
|
|
|
|
|
|
|
|
|
//遍历source1
|
|
|
|
|
for (List<String> r : source1) {
|
|
|
|
|
for (int i = 0; i < source1.size(); i++) {
|
|
|
|
|
List<String> r1 = source1.get(i);
|
|
|
|
|
List<String> r2 = source2.get(i);
|
|
|
|
|
Row outRow = outSheet.createRow(++rowIndex);
|
|
|
|
|
// 导出数据
|
|
|
|
|
//上级行政区划,行政区划,年份,城镇人口变化,城镇人口预测,乡村人口变化,乡村人口预测
|
|
|
|
|
int year = Integer.parseInt(r.getFirst());
|
|
|
|
|
//城镇
|
|
|
|
|
double cvalue = Double.parseDouble(r.get(1));
|
|
|
|
|
//乡村
|
|
|
|
|
double xvalue = Double.parseDouble(r.get(2));
|
|
|
|
|
|
|
|
|
|
if (year <= 2023) {
|
|
|
|
|
ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList("云南省",cityName, r.getFirst(), String.format("%.2f", cvalue), "",String.format("%.2f", xvalue),"")), dataStyle);
|
|
|
|
|
} else {
|
|
|
|
|
ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList("云南省",cityName, r.getFirst(),"", String.format("%.2f", cvalue),"" ,String.format("%.2f", xvalue))), dataStyle);
|
|
|
|
|
}
|
|
|
|
|
ExcelKit.putData(outRow, new ArrayList<>(
|
|
|
|
|
Arrays.asList(cityName, r1.getFirst(),
|
|
|
|
|
r1.get(1), xqjzg, String.format("%.2f",Double.parseDouble(xqjzg) - Double.parseDouble(r1.get(1))),//学前教职工数,2022基数减去当前值,得到预测值
|
|
|
|
|
r2.get(1), xqjzgMJ, String.format("%.2f",Double.parseDouble(xqjzgMJ) - Double.parseDouble(r2.get(1))),//学前占地面积,2023基数减去当前值,得到预测值
|
|
|
|
|
|
|
|
|
|
r1.get(2), xxjzg, String.format("%.2f",Double.parseDouble(xxjzg) - Double.parseDouble(r1.get(2))),//小学教职工数,2022基数减去当前值,得到预测值
|
|
|
|
|
r2.get(2), xxjzgMJ, String.format("%.2f",Double.parseDouble(xxjzgMJ) - Double.parseDouble(r2.get(2))),//小学占地面积,2023基数减去当前值,得到预测值
|
|
|
|
|
|
|
|
|
|
r1.get(3), zxjzg, String.format("%.2f",Double.parseDouble(zxjzg) - Double.parseDouble(r1.get(3))),//初中教职工数,2022基数减去当前值,得到预测值
|
|
|
|
|
r2.get(3), zxjzgMJ, String.format("%.2f",Double.parseDouble(zxjzgMJ) - Double.parseDouble(r2.get(3))),//初中占地面积,2023基数减去当前值,得到预测值
|
|
|
|
|
|
|
|
|
|
r1.get(4), gxjzg, String.format("%.2f",Double.parseDouble(gxjzg) - Double.parseDouble(r1.get(4))),//高中教职工数,2022基数减去当前值,得到预测值
|
|
|
|
|
r2.get(4), gxjzgMJ, String.format("%.2f",Double.parseDouble(gxjzgMJ) - Double.parseDouble(r2.get(4))),//高中占地面积,2023基数减去当前值,得到预测值
|
|
|
|
|
"", "", "", "", "", "", "云南省")), dataStyle);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|