当前位置: 首页 > news >正文

记录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[i+j]) 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", encoding="utf-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_only=True) ws = wb.active data_ = [row[0] for row in ws.iter_rows(values_only=True)] out_dir = "output" os.makedirs(out_dir, exist_ok=True) # 1. 创建output文件夹,不存在则新建 for i in range(39): name_ = write_txt_func_(f'入学申请表20250830 ({i+1}).xls') dst_path = os.path.join(out_dir, f"{name_}.xls") shutil.copy2(f'入学申请表20250830 ({i+1}).xls', dst_path)
http://www.jsqmd.com/news/1165250/

相关文章:

  • 2026智能办公本实测排名:谁在真正改变会议效率
  • AMAT 70512560 控制器模块
  • 熊猫烧香病毒应急响应:5 步手动排查与 3 类关键注册表项修复指南
  • 2026年7月最新乌鲁木齐泰格豪雅官方售后联系电话与客户服务中心网点地址 - 亨得利官方服务中心
  • 2026 年当下,巢湖热门的油墨化工设备制造商有哪些,打破传统:这套设备如何重塑油墨生产效率? - 行业鉴选官
  • Unity异步编程升级:从传统协程到UniTask的完整迁移指南
  • LLM强化学习中的单调推理策略:异策略训练与数据复用优化
  • Claude 4.6深度工程实践:30小时打造可嵌入CI/CD的技术债识别CLI
  • 2026年7月最新北京格拉苏蒂官方售后服务网点地址及客服电话一览 - 亨得利钟表维修中心
  • 开关电源输出电压偏高烧毁负载!
  • AI Agent落地成本优化:模型、智能体与人的高效协作指南
  • 从功能迭代看 AI 数字人交互源码对私有化项目的长期价值
  • Vulnhub DarkHole-2 靶场:3 种 Git 泄露利用工具 (GitHacker/git-dumper) 实战对比
  • 北京劳力士回收价格查询和各大平台实测排行(2026年7月最新数据) - 劳力士官方服务中心
  • B4068 [GESP202412 四级] Recamán 题解
  • 3个月独立站优化,75.1K点击、1400万曝光:独立站SEO逆势爆发的底层逻辑与实操复盘
  • Leaf 分布式 ID 生成实战——美团 Leaf 从原理到落地
  • AB PLC Studio 5000 Modbus TCP 配置:从固件升级到主/从站测试的 5 个关键步骤
  • 百达翡丽中心售后网点提供专业维修与保养服务权威公示(2026年7月最新) - 百达翡丽官方售后中心
  • 活体检测评价指标 ACER vs HTER:3种协议下指标选择与阈值调优实战
  • 自媒体运维神器|QTphone 批量视频自动化上传实操解析
  • Verilog 小数分频 8.6 倍:双模前置法 3 种实现顺序的相位抖动对比
  • RS-232/RS-485/RS-422 接口选型指南:5个工业场景下的电气特性与布线要点
  • 2026年7月最新泰州泰格豪雅官方售后维修服务网点地址与客服电话 - 亨得利官方服务中心
  • Windows 11 LTSC 微软商店恢复:5分钟快速安装完整解决方案
  • STM32 Cortex-M3 GCC 链接脚本配置实战:优化栈与堆的 2 种内存布局策略
  • XLSX Workbench 实战:5步配置SAP ABAP Excel模板,性能提升10倍
  • 组合逻辑电路设计对比:5路呼叫器3种实现方案与BCD加法器74283应用
  • RAG系统评估指南:从入门到实践
  • 服务器压测必备:两种实时监控网卡传输速率的方法(原生命令 vs nload工具)