61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
# 读取 Doc目录 数据库-2015-2024-v2.xlsx 文件内容
|
||
# pip install openpyxl
|
||
|
||
import openpyxl
|
||
|
||
from Config.Config import EXCEL_PATH
|
||
from Util.AreaUtil import query_area_info
|
||
|
||
file_name = EXCEL_PATH
|
||
|
||
# 初始化统计变量
|
||
success_count = 0
|
||
error_count = 0
|
||
error_details = []
|
||
|
||
# 读取Excel文件并获取所有sheet名称
|
||
try:
|
||
# 加载工作簿
|
||
workbook = openpyxl.load_workbook(file_name, read_only=True)
|
||
sheet_names = workbook.sheetnames
|
||
|
||
if sheet_names:
|
||
first_sheet = workbook[sheet_names[0]]
|
||
# 读取所有行数据
|
||
rows = list(first_sheet.iter_rows(values_only=True))
|
||
total_count = len(rows[2:]) # 排除表头的总数据行数
|
||
|
||
# 跳过前两行表头,从第三行开始处理数据
|
||
for row_num, row in enumerate(rows[2:], start=3):
|
||
# 假设行政区划名称在第一列(索引0)
|
||
if row and row[0]:
|
||
area_name = row[0]
|
||
result = query_area_info(area_name)
|
||
|
||
if result:
|
||
success_count += 1
|
||
print(f"✅ 行 {row_num}: {area_name} -> 全称: {result['full_name']}, 行政区划码: {result['area_code']}")
|
||
else:
|
||
error_count += 1
|
||
error_details.append(f"行 {row_num}: '{area_name}'")
|
||
print(f"❌ 行 {row_num}: 未找到 '{area_name}' 的相关信息")
|
||
|
||
# 输出汇总结果
|
||
print("\n==================== 匹配结果汇总 ====================")
|
||
print(f"📊 总记录数: {total_count}, 成功匹配: {success_count}, 匹配失败: {error_count}")
|
||
print(f"📈 匹配成功率: {success_count/total_count*100:.2f}%\n")
|
||
|
||
if error_details:
|
||
print("❌ 匹配失败详情:")
|
||
for detail in error_details:
|
||
print(f" - {detail}")
|
||
else:
|
||
print("✅ 所有记录均成功匹配!")
|
||
|
||
workbook.close()
|
||
|
||
except FileNotFoundError:
|
||
print(f"🔴 错误:找不到文件 '{file_name}'")
|
||
except Exception as e:
|
||
print(f"🔴 读取Excel时发生错误:{str(e)}")
|