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

代码
import os
import openpyxl
folder_path = r'C:\Users\16071\Desktop\日常点检表单\日常点检表单'
xlsx_files = []
file_names = []
for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith('.xlsx'):xlsx_files.append(os.path.join(root, file))file_name_without_extension = os.path.splitext(file)[0]file_names.append(file_name_without_extension)
def extract_data_from_excel(file_path):wb = openpyxl.load_workbook(file_path)sheet = wb.activedata = []for row in range(7, sheet.max_row + 1):cell = sheet[f'B{row}'] if cell.value is not None: data.append(cell.value)else:break return data
data_dict = {}
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}")
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "Extracted Data"
row_number = 1
for file_name, data_list in data_dict.items():for data in data_list:sheet.cell(row=row_number, column=1, value=file_name)sheet.cell(row=row_number, column=2, value=data)row_number += 1
output_file_path = 'extracted_data.xlsx'
wb.save(output_file_path)
print(f"Data has been written to {output_file_path}")