|
|
|
@ -0,0 +1,96 @@
|
|
|
|
|
package com.dsideal.base.Tools.JkyNewData;
|
|
|
|
|
|
|
|
|
|
import cn.idev.excel.ExcelReader;
|
|
|
|
|
import cn.idev.excel.FastExcel;
|
|
|
|
|
import cn.idev.excel.read.builder.ExcelReaderBuilder;
|
|
|
|
|
import cn.idev.excel.read.metadata.ReadSheet;
|
|
|
|
|
import com.dsideal.base.Tools.JkyNewData.Util.CloseLogUtil;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
public class ExcelSheetChecker {
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
CloseLogUtil.Init();
|
|
|
|
|
|
|
|
|
|
// Excel文件基础路径
|
|
|
|
|
String basePath = "D:/dsWork/2025年收集的人口与教育数据库(20250328)/2015-2020年的数据/基础教育/";
|
|
|
|
|
|
|
|
|
|
// 处理2016年到2020年的文件
|
|
|
|
|
for (int year = 2016; year <= 2020; year++) {
|
|
|
|
|
String excelPath = basePath + year + ".xlsx";
|
|
|
|
|
System.out.println("\n开始处理 " + year + " 年的数据...");
|
|
|
|
|
|
|
|
|
|
// 创建File对象
|
|
|
|
|
File excelFile = new File(excelPath);
|
|
|
|
|
|
|
|
|
|
if (!excelFile.exists()) {
|
|
|
|
|
System.out.println("文件不存在: " + excelPath);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// 获取所有Sheet名称
|
|
|
|
|
ExcelReaderBuilder excelReaderBuilder = FastExcel.read(excelPath);
|
|
|
|
|
ExcelReader excelReader = excelReaderBuilder.build();
|
|
|
|
|
List<String> sheetNames = new ArrayList<>();
|
|
|
|
|
List<ReadSheet> sheets = excelReader.excelExecutor().sheetList();
|
|
|
|
|
for (ReadSheet sheet : sheets) {
|
|
|
|
|
sheetNames.add(sheet.getSheetName());
|
|
|
|
|
}
|
|
|
|
|
System.out.println(year + "年Excel文件包含 " + sheetNames.size() + " 个Sheet:");
|
|
|
|
|
|
|
|
|
|
// 遍历每个Sheet
|
|
|
|
|
for (String sheetName : sheetNames) {
|
|
|
|
|
System.out.println("\n检查Sheet: " + sheetName);
|
|
|
|
|
|
|
|
|
|
// 读取Sheet数据,跳过前7行
|
|
|
|
|
List<Map<String, Object>> dataList = FastExcel.read(excelPath)
|
|
|
|
|
.sheet(sheetName)
|
|
|
|
|
.headRowNumber(7)
|
|
|
|
|
.doReadSync();
|
|
|
|
|
|
|
|
|
|
// 标记是否找到昆明市
|
|
|
|
|
boolean found = false;
|
|
|
|
|
|
|
|
|
|
// 遍历每一行数据
|
|
|
|
|
for (int rowIndex = 0; rowIndex < dataList.size(); rowIndex++) {
|
|
|
|
|
Map<String, Object> row = dataList.get(rowIndex);
|
|
|
|
|
|
|
|
|
|
// 遍历每一列
|
|
|
|
|
for (Map.Entry<String, Object> entry : row.entrySet()) {
|
|
|
|
|
Object value = entry.getValue();
|
|
|
|
|
String valueStr = value != null ? value.toString() : "";
|
|
|
|
|
|
|
|
|
|
// 检查是否等于"昆明市"
|
|
|
|
|
if (valueStr.equals("昆明市")) {
|
|
|
|
|
found = true;
|
|
|
|
|
// 获取列标识
|
|
|
|
|
String columnKey = String.valueOf(entry.getKey());
|
|
|
|
|
System.out.println("在 " + year + " 年的Sheet '" + sheetName + "' 中:");
|
|
|
|
|
System.out.println(" 昆明市首次出现在第 " + (rowIndex + 8) + " 行(跳过7行后)");
|
|
|
|
|
System.out.println(" 列标识: " + columnKey);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如果找到了昆明市,跳出循环
|
|
|
|
|
if (found) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!found) {
|
|
|
|
|
System.out.println("在 " + year + " 年的Sheet '" + sheetName + "' 中没有找到昆明市");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.err.println("处理 " + year + " 年Excel文件时出错: " + e.getMessage());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
System.out.println("\n所有年份处理完成");
|
|
|
|
|
}
|
|
|
|
|
}
|