繁体   English   中英

打开文件夹中的所有Excel文件并记录值

[英]Open all excel files in a folder and record values

我正在寻找学习此技能的资源,或寻找使之有效的示例代码。 我需要对同一文件夹中的数百个excel文件执行以下操作:
打开excel文件,
从某些单元格中读取文件名和3个值(我将它们称为FName,X和Y),
将这些值以以下格式写在文本文件的同一行中:FName; X; Ÿ; Z者除外;

然后重复,直到我有一个包含所有这些值的文本文件。

我的数据收集部分工作得很好。 我的问题是,如果文件名不在工作表中,我将不知道如何记录该文件名,而且我也不知道如何遍历文件夹中的所有文件。

import openpyxl

wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')

##### Gather values #####
x = sheet['F3'].value
y = sheet['C13'].value
if sheet['A17'].value == 'X':
    z = 'Pass'
else:
    z = 'Fail'

##### Append .txt file #####
f = open('example.txt',"a+") # (a)ppend, (w)rite, (r)ead, + is create
f.write(str(x) + ";")
f.write(str(y) + ";")
f.write(z + ";" + "\n")
f.close()

能否有人指出正确的方向,弄清楚如何对文件夹中的所有excel文件执行此操作?

要收集文件夹中的所有文件,请使用python模块glob。 对于此示例,我们将说您的文件位于桌面上。

import glob
import os # Imported os

f = open('example.txt',"a+") # (a)ppend, (w)rite, (r)ead, + is create

for file in glob.glob(r'C:\Users\Owner\Desktop\*.xlsx'):  # Change this to your directory
    wb = openpyxl.load_workbook(rf'{file}')
    sheet = wb.get_sheet_by_name('Sheet1')

    filename = os.path.split(file)[1] # This is the name of the file
    wo_ext = os.path.splitext(filename)[0] # This is the name without .xlsx

    ##### Gather values #####
    x = sheet['F3'].value
    y = sheet['C13'].value
    if sheet['A17'].value == 'X':
        z = 'Pass'
    else:
        z = 'Fail'

    f.write(str(x) + ";")
    f.write(str(y) + ";")
    f.write(z + ";" + "\n")

    wb.close()

f.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM