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) if cell is not None else "" 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}")