main
HuangHai 4 months ago
parent 2d9173d0c7
commit a01e3efc87

@ -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所有年份处理完成");
}
}
Loading…
Cancel
Save