46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
import os
|
|
import json
|
|
import openpyxl
|
|
|
|
current_dir = os.getcwd()
|
|
print(current_dir)
|
|
# 读取配置文件
|
|
with open(os.path.join(current_dir, 'tool/cfg/cfg_txt.json'), 'r', encoding='utf-8-sig') as f:
|
|
cfg = json.load(f)
|
|
|
|
file_list = cfg['file_list']
|
|
target_dir = cfg['target_dir']
|
|
source_dir = cfg['source_dir']
|
|
fields_to_remove = cfg.get('fields_to_remove', [])
|
|
|
|
# 确保目标目录存在
|
|
os.makedirs(target_dir, exist_ok=True)
|
|
|
|
# 遍历文件列表并转换文件
|
|
for file_cfg in file_list:
|
|
source_file_path = os.path.join(current_dir, source_dir, file_cfg["in_file"])
|
|
target_file_path = os.path.join(current_dir, target_dir, file_cfg["out_file"])
|
|
sheet_name = file_cfg["sheet_name"]
|
|
|
|
# 读取XLSX文件
|
|
workbook = openpyxl.load_workbook(source_file_path)
|
|
sheet = workbook[sheet_name] if sheet_name else workbook.active
|
|
|
|
# 将数据写入TXT文件
|
|
with open(target_file_path, 'w', encoding='utf-8') as txt_file:
|
|
header = [str(cell.value) for cell in sheet[1] if cell.value not in fields_to_remove]
|
|
txt_file.write('#\t 界面配置表\n')
|
|
i = 0
|
|
for row in sheet.iter_rows(values_only=True):
|
|
i += 1
|
|
if i < 3 :
|
|
txt_file.write('#\t')
|
|
else:
|
|
txt_file.write('\t')
|
|
if i == 2:
|
|
txt_file.write('\t'.join(file_cfg["coloum_type"]) + '\n')
|
|
txt_file.write('#\t')
|
|
row_data = [str(cell) for cell in row if cell not in fields_to_remove]
|
|
txt_file.write('\t'.join(row_data) + '\n')
|
|
|
|
print(f"Converted: {source_file_path} to {target_file_path}") |