39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import pandas as pd
|
|
|
|
# 读取Excel文件
|
|
file_path = '/Users/a123/Documents/UthinkJava2025/xbb-api-demo/sql/名称代码对应表.xls'
|
|
df = pd.read_excel(file_path)
|
|
|
|
# 清理列名中的特殊字符
|
|
df.columns = [col.replace('\x00', '') for col in df.columns]
|
|
|
|
# 打印列名
|
|
print("列名:")
|
|
for i, col in enumerate(df.columns):
|
|
print(f"{i+1}. {col}")
|
|
|
|
# 打印前几行数据
|
|
print("\n前5行数据:")
|
|
print(df.head())
|
|
|
|
# 构建替换映射数组
|
|
name_code_map = []
|
|
for index, row in df.iterrows():
|
|
# 假设第一列是名称,第二列是代码
|
|
if len(df.columns) >= 3: # 序号、名称、代码三列
|
|
name = str(row.iloc[1]) if not pd.isna(row.iloc[1]) else '' # 名称在第二列
|
|
code = str(row.iloc[2]) if not pd.isna(row.iloc[2]) else '' # 代码在第三列
|
|
if name and code:
|
|
name_code_map.append((name.strip(), code.strip()))
|
|
|
|
print("\n名称代码对应关系:")
|
|
for name, code in name_code_map[:10]: # 只打印前10个
|
|
print(f"{name} -> {code}")
|
|
print(f"总共 {len(name_code_map)} 个映射关系")
|
|
|
|
# 生成Java代码
|
|
print("\n生成的Java代码:")
|
|
print("private static final String[][] NAME_CODE_MAP = {")
|
|
for name, code in name_code_map:
|
|
print(f' {{"{name}", "{code}"}},')
|
|
print("};") |