main
HuangHai 4 months ago
parent 7e5efaf941
commit 0897e0c7c6

@ -0,0 +1,18 @@
package com.dsideal.base.Tools.Excel;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class ColumnConfig {
public int index; // Excel列索引
public String name; // 列名
public String type; // 数据类型
ColumnConfig(int index, String name, String type) {
this.index = index;
this.name = name;
this.type = type;
}
}

@ -8,6 +8,8 @@ import com.alibaba.fastjson2.JSONObject;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileReader; import java.io.FileReader;
import com.dsideal.base.Tools.Excel.Util.ExcelUtil;
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.Record;
@ -17,30 +19,16 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class School2019Map { public class SchoolWithMap {
// 定义列配置类
private static class ColumnConfig {
int index; // Excel列索引
String name; // 列名
String type; // 数据类型
ColumnConfig(int index, String name, String type) {
this.index = index;
this.name = name;
this.type = type;
}
}
public static void main(String[] args) throws FileNotFoundException { public static void main(String[] args) throws FileNotFoundException {
// 一、关闭日志输出
// 禁用 logback 的状态输出 // 禁用 logback 的状态输出
System.setProperty("logback.statusListenerClass", "ch.qos.logback.core.status.NopStatusListener"); System.setProperty("logback.statusListenerClass", "ch.qos.logback.core.status.NopStatusListener");
// 设置所有相关日志级别 // 设置所有相关日志级别
Logger root = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); Logger root = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.ERROR); root.setLevel(Level.ERROR);
// 设置特定包的日志级别 // 设置特定包的日志级别
String[] packages = { String[] packages = {
"org.ehcache", "org.ehcache",
@ -50,17 +38,17 @@ public class School2019Map {
"ch.qos.logback", "ch.qos.logback",
"org.slf4j" "org.slf4j"
}; };
for (String pkg : packages) { for (String pkg : packages) {
Logger logger = (Logger) LoggerFactory.getLogger(pkg); Logger logger = (Logger) LoggerFactory.getLogger(pkg);
logger.setLevel(Level.ERROR); logger.setLevel(Level.ERROR);
logger.setAdditive(false); logger.setAdditive(false);
} }
//初始化数据库连接
// 二、初始化数据库连接
LocalMysqlConnectUtil.Init(); LocalMysqlConnectUtil.Init();
// 读取配置文件 // 读取配置文件
String configPath = "D:\\dsWork\\YunNanDsBase\\src\\main\\java\\com\\dsideal\\base\\Tools\\Excel\\SchoolCount.json"; String configPath = "D:/dsWork/YunNanDsBase/src/main/java/com/dsideal/base/Tools/Excel/Data/SchoolCount.json";
JSONObject config = JSON.parseObject(new FileReader(configPath)); JSONObject config = JSON.parseObject(new FileReader(configPath));
String filePath = "D:/dsWork/2025年收集的人口与教育数据库20250328/2015-2020年的数据/基础教育/2019.xlsx"; String filePath = "D:/dsWork/2025年收集的人口与教育数据库20250328/2015-2020年的数据/基础教育/2019.xlsx";
@ -114,9 +102,9 @@ public class School2019Map {
for (Map<String, Object> data : dataList) { for (Map<String, Object> data : dataList) {
try { try {
// 根据列配置获取数据 // 根据列配置获取数据
String city = getColumnValue(data, columnConfigs.get("city")); String city = ExcelUtil.getColumnValue(data, columnConfigs.get("city"));
String district = getColumnValue(data, columnConfigs.get("district")); String district = ExcelUtil.getColumnValue(data, columnConfigs.get("district"));
int count = getColumnValueAsInt(data, columnConfigs.get("schoolCount")); int count = ExcelUtil.getColumnValueAsInt(data, columnConfigs.get("schoolCount"));
if (count > 0) { if (count > 0) {
// 如果市不存在,创建新的 Map // 如果市不存在,创建新的 Map
@ -128,38 +116,12 @@ public class School2019Map {
} catch (Exception e) { } catch (Exception e) {
System.err.println("处理数据行时出错: " + data); System.err.println("处理数据行时出错: " + data);
e.printStackTrace(); e.printStackTrace();
continue; // 继续处理下一行
} }
} }
return cityDistrictMap; return cityDistrictMap;
} }
/**
*
*/
private static String getColumnValue(Map<String, Object> data, ColumnConfig config) {
Object value = data.get(config.index);
return value != null ? value.toString() : "";
}
/**
*
*/
private static int getColumnValueAsInt(Map<String, Object> data, ColumnConfig config) {
Object value = data.get(config.index);
if (value == null) {
return 0;
}
if (value instanceof Number) {
return ((Number) value).intValue();
}
try {
return Integer.parseInt(value.toString());
} catch (NumberFormatException e) {
return 0;
}
}
/** /**
* *

@ -1,6 +1,10 @@
package com.dsideal.base.Tools.Excel.Util; package com.dsideal.base.Tools.Excel.Util;
import com.dsideal.base.Tools.Excel.ColumnConfig;
import java.util.Map;
public class ExcelUtil { public class ExcelUtil {
// 将字母标号转换为列索引 // 将字母标号转换为列索引
public static int columnLetterToIndex(String columnLetter) { public static int columnLetterToIndex(String columnLetter) {
@ -24,4 +28,31 @@ public class ExcelUtil {
} }
return columnLetter.toString(); return columnLetter.toString();
} }
/**
*
*/
public static String getColumnValue(Map<String, Object> data, ColumnConfig config) {
Object value = data.get(config.index);
return value != null ? value.toString() : "";
}
/**
*
*/
public static int getColumnValueAsInt(Map<String, Object> data, ColumnConfig config) {
Object value = data.get(config.index);
if (value == null) {
return 0;
}
if (value instanceof Number) {
return ((Number) value).intValue();
}
try {
return Integer.parseInt(value.toString());
} catch (NumberFormatException e) {
return 0;
}
}
} }

Loading…
Cancel
Save