记录xls表格提取信息

📅 2026/7/11 4:39:33
记录xls表格提取信息
记录从系统下载来的入学申请表提取家长信息。获取联系方式以备不时之需。实现以下需求1、仅提取关键信息学生基本情况家长基本情况2、关键信息整合成TXT文件3、文件名混乱结合花名册复制xls文件到新路径以学号和名字的方式重命名。import xlrd from openpyxl import load_workbook import os import shutil def read_all_xls(file_path): 读取xls文件全部内容返回字典{工作表名: 表格二维列表} workbook xlrd.open_workbook(file_path) all_sheets_data {} for sheet_name in workbook.sheet_names(): sheet_ workbook.sheet_by_name(sheet_name) sheet_data [] for row_idx in range(sheet_.nrows): row_values sheet_.row_values(row_idx) sheet_data.append(row_values) all_sheets_data[sheet_name] sheet_data workbook.release_resources() return all_sheets_data def write_txt_func_(file_name_): search_num_list_ [5, 31, 18, 24] # [姓名, 房产类别, 关 系] # 5,31,18,24这几行往后数5行都是重要信息 save_i_list_ [] # 要保存的信息放在此,有空值 output_list_ [] # 要保存的信息放在此,无空值 try: data read_all_xls(file_name_) for sheet, table in data.items(): # print(f 工作表{sheet} ) id_ data_.index(sheet) 1 # 学生学号 for i in search_num_list_: for j in range(5): save_i_list_.append(table[ij]) for inner_list_ in save_i_list_: new_lst [x for x in inner_list_ if x is not None and str(x).strip() ! ] # 去除列表空值 output_list_.append(new_lst) with open(f{id_} {sheet}.txt, w, encodingutf-8) as f: # sheet为学生姓名 for item in output_list_: f.write(f{item}\n) f.write(\n) return f{id_} {sheet} except FileNotFoundError: print(f错误找不到文件 {file_name_}请检查文件路径是否正确) except Exception as e: print(f读取失败{str(e)}) if __name__ __main__: wb load_workbook(花名册.xlsx, data_onlyTrue) ws wb.active data_ [row[0] for row in ws.iter_rows(values_onlyTrue)] out_dir output os.makedirs(out_dir, exist_okTrue) # 1. 创建output文件夹不存在则新建 for i in range(39): name_ write_txt_func_(f入学申请表20250830 ({i1}).xls) dst_path os.path.join(out_dir, f{name_}.xls) shutil.copy2(f入学申请表20250830 ({i1}).xls, dst_path)