欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > python脚本:批量提取excel数据

python脚本:批量提取excel数据

2025/2/21 3:07:47 来源:https://blog.csdn.net/weixin_64911856/article/details/144746192  浏览:    关键词:python脚本:批量提取excel数据

这是一个脚本,用于提取文件夹下所有excel文件中的特定数据,并保存到一个新的excel文件。由于我的数据不多,就没有使用多线程。

要提取的数据如图中的检测项目

在这里插入图片描述

代码

import os
import openpyxl## 第一步提取文件夹中的所有excle文件
# 1 设置你想要搜索的文件夹路径
folder_path = r'C:\Users\16071\Desktop\日常点检表单\日常点检表单'# 2 保存输出
# 用于存储找到的.xlsx文件名称的列表
xlsx_files = []
# 用于存储找到的.xlsx文件名称(不包含路径和文件类型)的列表
file_names = []# 3 遍历指定文件夹及其子文件夹
for root, dirs, files in os.walk(folder_path):for file in files:# 检查文件扩展名是否为.xlsxif file.endswith('.xlsx'):# 将文件的完整路径添加到列表中xlsx_files.append(os.path.join(root, file))# 从文件名中去除.xlsx扩展名,只保留文件名file_name_without_extension = os.path.splitext(file)[0]# 将文件名添加到列表中file_names.append(file_name_without_extension)# 4 打印所有找到的.xlsx文件名称
# for file in file_names:
#    print(file)## 第二步设计数据提取函数
def extract_data_from_excel(file_path):# 加载Excel工作簿wb = openpyxl.load_workbook(file_path)# 选择活动的工作表sheet = wb.active# 初始化一个列表来存储提取的数据data = []# 从B7开始读取数据   重点1:确定数据范围for row in range(7, sheet.max_row + 1):cell = sheet[f'B{row}']  # 获取B列的单元格if cell.value is not None:    # 重点2:数据提取条件data.append(cell.value)else:break  # 如果遇到空单元格,则停止读取;遇到合并的单元格也会停止return data# # 使用函数并传入Excel文件路径
# file_path = xlsx_files[0]
# extracted_data = extract_data_from_excel(file_path)
# print(extracted_data)## 第三步,提取并保存每一个文件的数据
# 1 用于存储提取数据的字典
data_dict = {}
# 2 为每个文件提取数据
for file_name in file_names:file_path = os.path.join(folder_path, f'{file_name}.xlsx')  # 构建完整的文件路径try:data = extract_data_from_excel(file_path)data_dict[file_name] = dataprint(f"Data extracted from {file_name}.xlsx:")print(data)except Exception as e:print(f"Failed to extract data from {file_name}.xlsx: {e}")## 第四步,保存数据
# 1 创建一个新的Excel工作簿
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "Extracted Data"# 2 初始化行号
row_number = 1# 3 遍历字典,将键和值写入Excel
for file_name, data_list in data_dict.items():for data in data_list:# 将文件名写入A列sheet.cell(row=row_number, column=1, value=file_name)# 将数据写入B列sheet.cell(row=row_number, column=2, value=data)# 行号递增row_number += 1# 4 保存Excel工作簿
output_file_path = 'extracted_data.xlsx'
wb.save(output_file_path)
print(f"Data has been written to {output_file_path}")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词