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

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:
        # 检查文件扩展名是否为.xlsx
        if 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] = data
        print(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}")

http://www.kler.cn/a/453458.html

相关文章:

  • WebRTC服务质量(10)- Pacer机制(02) RoundRobinPacketQueue
  • Unity自定义Inspector属性名特性以及特性自定义布局问题
  • 散户应该持有哪些代币?
  • 计算机网络 (8)物理层的传输方式
  • HashMap源码深度解析(JDK 1.8)
  • 鸿蒙项目云捐助第二十二讲云捐助项目物联网IoT鸿蒙端的代码实现
  • C 实现植物大战僵尸(一)
  • Mysql 查询性能调优总结
  • PyQt5 学习方法之悟道
  • FPGA实时红外相机采集输出系统,提供工程源码和技术支持
  • 大模型Weekly|月之暗面发布Kimi视觉思考模型 k1;谷歌发布最新视频生成模型Veo 2
  • HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据
  • SpringCloudAlibaba技术栈-Dubbo
  • kubernetes Gateway API-部署和基础配置
  • 【gulp】gulp 的基本使用
  • 从数据仓库到数据中台再到数据飞轮:电信行业的数据技术进化史
  • 质数生成函数、质数判断备份
  • <论文>语言模型可以进行无监督的多任务学习?
  • 从源码到应用:在线问诊系统与医疗陪诊APP的开发全过程详解
  • 12.26 学习卷积神经网路(CNN)