|
|
|
@ -6,6 +6,7 @@ import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
|
|
|
|
|
import com.dsideal.base.Tools.Util.ReadDocxUtil;
|
|
|
|
|
import com.jfinal.kit.StrKit;
|
|
|
|
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
|
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
@ -13,6 +14,7 @@ import org.dom4j.DocumentException;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
public class A12 {
|
|
|
|
@ -83,82 +85,81 @@ public class A12 {
|
|
|
|
|
System.exit(0);
|
|
|
|
|
}
|
|
|
|
|
//县区名称
|
|
|
|
|
//System.out.println(file.getAbsolutePath());
|
|
|
|
|
System.out.println(file.getAbsolutePath());
|
|
|
|
|
int chartNumber = 36;
|
|
|
|
|
List<List<String>> source1 = ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0);
|
|
|
|
|
|
|
|
|
|
//需要处理下人与万人的单位兼容
|
|
|
|
|
// for (int i = 0; i < source1.size(); i++) {
|
|
|
|
|
// List<String> row = source1.get(i);
|
|
|
|
|
// for (int j = 1; j <= 4; j++) {
|
|
|
|
|
// if (j + 1 > row.size()) continue;
|
|
|
|
|
// if (Double.parseDouble(row.get(j)) < 10) {
|
|
|
|
|
// row.set(j, String.valueOf((int) Double.parseDouble(row.get(j)) * 10000));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
ExcelKit.printTable(source1);
|
|
|
|
|
// chartNumber = 37;
|
|
|
|
|
// List<List<String>> source37 = ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0);
|
|
|
|
|
// ExcelKit.printTable(source37);
|
|
|
|
|
//
|
|
|
|
|
// if (source36 != null) {
|
|
|
|
|
// for (int i = 0; i < source36.size(); i++) {
|
|
|
|
|
// List<String> row36 = source36.get(i);
|
|
|
|
|
// if (source37 != null && i + 1 > source37.size()) continue;
|
|
|
|
|
// List<String> row37 = null;
|
|
|
|
|
// if (source37 != null) {
|
|
|
|
|
// row37 = source37.get(i);
|
|
|
|
|
// }
|
|
|
|
|
// Row outRow = outSheet.createRow(++rowIndex);
|
|
|
|
|
// String year = row36.getFirst();//年份
|
|
|
|
|
// //学前
|
|
|
|
|
// String xq_jzg = row36.get(1);//教职工数
|
|
|
|
|
// String xq_jzg2022 = source36.getFirst().get(1);//教职工2022基数
|
|
|
|
|
// String xq_szqk = String.valueOf((int)(Double.parseDouble(xq_jzg2022) - Double.parseDouble(xq_jzg)));//缺口、富裕
|
|
|
|
|
// String xq_ysmj = null;//园舍面积
|
|
|
|
|
// if (row37 != null) {
|
|
|
|
|
// xq_ysmj = row37.get(1);
|
|
|
|
|
// }
|
|
|
|
|
// String xq_ysmj2022 = null;//园舍面积2022基数
|
|
|
|
|
// if (source37 != null) {
|
|
|
|
|
// xq_ysmj2022 = source37.getFirst().get(1);
|
|
|
|
|
// }
|
|
|
|
|
// String xq_ysmjqk = String.format("%.2f", Double.parseDouble(xq_ysmj2022) - Double.parseDouble(xq_ysmj));
|
|
|
|
|
//
|
|
|
|
|
// //小学
|
|
|
|
|
// String xx_jzg = row36.get(2);//教职工数
|
|
|
|
|
// String xx_jzg2022 = source36.getFirst().get(2);//教职工2022基数
|
|
|
|
|
// String xx_szqk = String.valueOf((int)(Double.parseDouble(xx_jzg2022) - Double.parseDouble(xx_jzg)));//缺口、富裕
|
|
|
|
|
// if(2+1>row37.size()) continue;
|
|
|
|
|
// String xx_ysmj = row37.get(2);//园舍面积
|
|
|
|
|
// String xx_ysmj2022 = source37.getFirst().get(2);//园舍面积2022基数
|
|
|
|
|
// String xx_ysmjqk = String.format("%.2f", Double.parseDouble(xx_ysmj2022) - Double.parseDouble(xx_ysmj));
|
|
|
|
|
//
|
|
|
|
|
// //初中
|
|
|
|
|
// String cz_jzg = row36.get(3);//教职工数
|
|
|
|
|
// String cz_jzg2022 = source36.getFirst().get(3);//教职工2022基数
|
|
|
|
|
// String cz_szqk = String.valueOf((int)(Double.parseDouble(cz_jzg2022) - Double.parseDouble(cz_jzg)));//缺口、富裕
|
|
|
|
|
// String cz_ysmj = row37.get(3);//园舍面积
|
|
|
|
|
// String cz_ysmj2022 = source37.getFirst().get(3);//园舍面积2022基数
|
|
|
|
|
// String cz_ysmjqk = String.format("%.2f", Double.parseDouble(cz_ysmj2022) - Double.parseDouble(cz_ysmj));
|
|
|
|
|
//
|
|
|
|
|
// //高中
|
|
|
|
|
// String gz_jzg = row36.get(4);//教职工数
|
|
|
|
|
// String gz_jzg2022 = source36.getFirst().get(4);//教职工2022基数
|
|
|
|
|
// String gz_szqk = String.valueOf((int)(Double.parseDouble(gz_jzg2022) - Double.parseDouble(gz_jzg)));//缺口、富裕
|
|
|
|
|
// String gz_ysmj = row37.get(4);//园舍面积
|
|
|
|
|
// String gz_ysmj2022 = source37.getFirst().get(4);//园舍面积2022基数
|
|
|
|
|
// String gz_ysmjqk = String.format("%.2f", Double.parseDouble(gz_ysmj2022) - Double.parseDouble(gz_ysmj));
|
|
|
|
|
//
|
|
|
|
|
// ExcelKit.putData(outRow, Arrays.asList(year, areaName,
|
|
|
|
|
// xq_jzg, xq_jzg2022, xq_szqk, xq_ysmj, xq_ysmj2022, xq_ysmjqk, // 学前
|
|
|
|
|
// xx_jzg, xx_jzg2022, xx_szqk, xx_ysmj, xx_ysmj2022, xx_ysmjqk, // 小学
|
|
|
|
|
// cz_jzg, cz_jzg2022, cz_szqk, cz_ysmj, cz_ysmj2022, cz_ysmjqk, // 初中
|
|
|
|
|
// gz_jzg, gz_jzg2022, gz_szqk, gz_ysmj, gz_ysmj2022, gz_ysmjqk, // 高中
|
|
|
|
|
// cityName), dataStyle);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
if (source1 != null) {
|
|
|
|
|
for (List<String> row : source1) {
|
|
|
|
|
for (int j = 1; j <= 4; j++) {
|
|
|
|
|
if (j + 1 > row.size()) continue;
|
|
|
|
|
if (Double.parseDouble(row.get(j)) < 10) {
|
|
|
|
|
row.set(j, String.valueOf((int) Double.parseDouble(row.get(j)) * 10000));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
chartNumber = 37;
|
|
|
|
|
List<List<String>> source2 = ExcelKit.getChartData(file.getAbsolutePath(), chartNumber, 0);
|
|
|
|
|
|
|
|
|
|
if (source1 != null) {
|
|
|
|
|
for (int i = 0; i < source1.size(); i++) {
|
|
|
|
|
List<String> row36 = source1.get(i);
|
|
|
|
|
//if (source2 != null && i + 1 > source2.size()) continue;
|
|
|
|
|
List<String> row37 = null;
|
|
|
|
|
if (source2 != null) {
|
|
|
|
|
row37 = source2.get(i);
|
|
|
|
|
}
|
|
|
|
|
Row outRow = outSheet.createRow(++rowIndex);
|
|
|
|
|
String year = row36.getFirst();//年份
|
|
|
|
|
//学前
|
|
|
|
|
String xq_jzg = row36.get(1).split("\\.")[0];//教职工数
|
|
|
|
|
String xq_jzg2022 = source1.getFirst().get(1).split("\\.")[0];//教职工2022基数
|
|
|
|
|
String xq_szqk = String.valueOf((int) (Double.parseDouble(xq_jzg2022) - Double.parseDouble(xq_jzg)));//缺口、富裕
|
|
|
|
|
String xq_ysmj = null;//园舍面积
|
|
|
|
|
if (row37 != null) {
|
|
|
|
|
xq_ysmj = row37.get(1);
|
|
|
|
|
}
|
|
|
|
|
String xq_ysmj2022 = null;//园舍面积2022基数
|
|
|
|
|
if (source2 != null) {
|
|
|
|
|
xq_ysmj2022 = source2.getFirst().get(1);
|
|
|
|
|
}
|
|
|
|
|
String xq_ysmjqk = String.format("%.2f", Double.parseDouble(xq_ysmj2022) - Double.parseDouble(xq_ysmj));
|
|
|
|
|
|
|
|
|
|
//小学
|
|
|
|
|
String xx_jzg = row36.get(2).split("\\.")[0];//教职工数
|
|
|
|
|
String xx_jzg2022 = source1.getFirst().get(2).split("\\.")[0];//教职工2022基数
|
|
|
|
|
String xx_szqk = String.valueOf((int) (Double.parseDouble(xx_jzg2022) - Double.parseDouble(xx_jzg)));//缺口、富裕
|
|
|
|
|
if (2 + 1 > row37.size()) continue;
|
|
|
|
|
String xx_ysmj = row37.get(2);//园舍面积
|
|
|
|
|
String xx_ysmj2022 = source2.getFirst().get(2);//园舍面积2022基数
|
|
|
|
|
String xx_ysmjqk = String.format("%.2f", Double.parseDouble(xx_ysmj2022) - Double.parseDouble(xx_ysmj));
|
|
|
|
|
|
|
|
|
|
//初中
|
|
|
|
|
String cz_jzg = row36.get(3).split("\\.")[0];//教职工数
|
|
|
|
|
String cz_jzg2022 = source1.getFirst().get(3).split("\\.")[0];//教职工2022基数
|
|
|
|
|
String cz_szqk = String.valueOf((int) (Double.parseDouble(cz_jzg2022) - Double.parseDouble(cz_jzg)));//缺口、富裕
|
|
|
|
|
String cz_ysmj = row37.get(3);//园舍面积
|
|
|
|
|
String cz_ysmj2022 = source2.getFirst().get(3);//园舍面积2022基数
|
|
|
|
|
String cz_ysmjqk = String.format("%.2f", Double.parseDouble(cz_ysmj2022) - Double.parseDouble(cz_ysmj));
|
|
|
|
|
|
|
|
|
|
//高中
|
|
|
|
|
String gz_jzg = row36.get(4).split("\\.")[0];//教职工数
|
|
|
|
|
String gz_jzg2022 = source1.getFirst().get(4).split("\\.")[0];//教职工2022基数
|
|
|
|
|
String gz_szqk = String.valueOf((int) (Double.parseDouble(gz_jzg2022) - Double.parseDouble(gz_jzg)));//缺口、富裕
|
|
|
|
|
String gz_ysmj = row37.get(4);//园舍面积
|
|
|
|
|
String gz_ysmj2022 = source2.getFirst().get(4);//园舍面积2022基数
|
|
|
|
|
String gz_ysmjqk = String.format("%.2f", Double.parseDouble(gz_ysmj2022) - Double.parseDouble(gz_ysmj));
|
|
|
|
|
|
|
|
|
|
ExcelKit.putData(outRow, Arrays.asList(year, areaName,
|
|
|
|
|
xq_jzg, xq_jzg2022, xq_szqk, xq_ysmj, xq_ysmj2022, xq_ysmjqk, // 学前
|
|
|
|
|
xx_jzg, xx_jzg2022, xx_szqk, xx_ysmj, xx_ysmj2022, xx_ysmjqk, // 小学
|
|
|
|
|
cz_jzg, cz_jzg2022, cz_szqk, cz_ysmj, cz_ysmj2022, cz_ysmjqk, // 初中
|
|
|
|
|
gz_jzg, gz_jzg2022, gz_szqk, gz_ysmj, gz_ysmj2022, gz_ysmjqk, // 高中
|
|
|
|
|
cityName), dataStyle);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//保存文件
|
|
|
|
|