【发布时间】:2018-03-13 00:58:14
【问题描述】:
我有一个包含 40 张左右的 Excel (.xlsx) 文件。每个工作表具有相同的结构,但包含不同的数据。我想从每张纸中提取信息并将其合并为一张,每张纸上的信息一个接一个。我需要从中提取的信息有两个:
- 工作表名称,始终位于单元格 E3 中
- 感兴趣的单元格区域,始终位于第 72-85 行和 E-V 列之间
此提取的信息将粘贴到合并工作表的第 2-15 行中,其中工作表名称位于一列中,所有其他信息位于其旁边的列中。然后,从下一张提取的信息将粘贴到第 16-29 行,依此类推。
我是 Python 新手,我正在运行 Python 3.6.1。我找到了有关如何使用 Python 组合 Excel 文件的解决方案,但没有找到用于从 Excel 工作表中的指定单元格中提取信息的解决方案。
任何指导都会非常有帮助。
更新 1:我设法将我的一张工作表的区域加载到数据框中。
import pandas as pd
cis = pd.ExcelFile(r"C:\mypath\myfile.xlsx")
df1 = cis.parse('1. Consumers', skiprows=[0,1,2,3,4,5,6],parse_cols=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).drop([13])
但是,我仍然必须将工作表名称添加到数据框中,然后在所有工作表上运行相同的循环,最后将每个工作表中的信息一起附加到一个数据框/文件中。
【问题讨论】:
-
所有工作表都有相同的列吗?
-
@muazfaiz。是的。
-
设置 Power Query 需要 2 分钟,这是 2010 年和 2013 年的加载项,2016 年作为 Get 和 Transform 内置。
-
@teylyn 感谢您的提示。但是,我希望使用 Python 脚本来执行此操作,主要是因为它需要在不同的文件集中多次使用。
-
使用 Power Query 的另一个原因。它可以设置一次,然后在不同的文件集上重复多次。