我建立线程提取信息从不同的表相同的文件和解决方案的问题类似,但不完全像我的。
我有几个Excel工作簿,每个工作簿包含几个工作表。我想迭代每个工作簿,并从工作表名称“3”中提取信息。价格”。此表可在所有文件中使用。每个文件中要从该工作表中提取的信息片段是两个。第一种总是在细胞范围E13: H13中发现,第二种来自细胞F19、I19和K19。
我希望将两条提取的信息相邻放置(对于给定的文件),然后将每个文件的提取内容堆叠在一个主文件的顶部。此外,组合文件的第一列应该是文件名。
所以像这样的事情:
到目前为止我所做的一切都没有成功
from openpyxl import load_workbook
import os
import pandas as pd
directory = os.listdir('C:\\User\\files')
for file in directory:
if os.path.isfile(file):
file_name = file[0:3]
workbook = load_workbook(filename = file)
sheet = workbook['3. Prices']
e13 = sheet['E13'].value
f13 = sheet['F13'].value
g13 = sheet['G13'].value
h13 = sheet['H13'].value
f19 = sheet['F19'].value
i19 = sheet['I19'].value
k19 = sheet['K19'].value
df = df.append(pd.DataFrame({
"File_name":file_name,
"E13":e13, "F13":f13, "G13":g13,"H13":h13,
"F19":f19,"I19":i19,"K19":i19,
}, index=[0]))
我想出来了。我缺少两个元素:1)更改当前工作目录以匹配变量“directory”中的目录;2)在开始时定义数据帧
from openpyxl import load_workbook
import os
import pandas as pd
os.chdir('C:\\User\\files')
directory = os.listdir('C:\\User\\files')
df=pd.DataFrame()
for file in directory:
if os.path.isfile(file):
file_name = file[0:3]
workbook = load_workbook(filename = file, data_only=True)
sheet = workbook['3. Prices']
e13 = sheet['E13'].value
f13 = sheet['F13'].value
g13 = sheet['G13'].value
h13 = sheet['H13'].value
f19 = sheet['F19'].value
i19 = sheet['I19'].value
k19 = sheet['K19'].value
df = df.append(pd.DataFrame({
"File_name":file_name,
"E13":e13, "F13":f13, "G13":g13,"H13":h13,
"F19":f19,"I19":i19,"K19":i19,
}, index=[0]))