如何在Python中跳过Excel工作表的前几行
我能够使用如何在Python中跳过Excel工作表的前几行,python,excel,python-3.x,openpyxl,Python,Excel,Python 3.x,Openpyxl,我能够使用openpyxl成功地取消合并Excel工作表中的所有单元格;但是,我想保持表的前7行完整。如下图所示,前7行包含合并的单元格 运行以下代码(查找合并的单元格并拆分它们)后: def填充(行、第一个单元格、最后一个单元格): #取第一个单元格的值 第一个单元格值=第一个单元格值 #将此值复制并填充/分配到范围的每个单元格中 对于行中的tmp: 单元=tmp[0] 打印(单元格)##例如(,) 打印(单元格值)###例如订单记录 cell.value=第一个值 wb2=加载工作簿('E
openpyxl
成功地取消合并Excel工作表中的所有单元格;但是,我想保持表的前7行完整。如下图所示,前7行包含合并的单元格
运行以下代码(查找合并的单元格并拆分它们)后:
def填充(行、第一个单元格、最后一个单元格):
#取第一个单元格的值
第一个单元格值=第一个单元格值
#将此值复制并填充/分配到范围的每个单元格中
对于行中的tmp:
单元=tmp[0]
打印(单元格)##例如(,)
打印(单元格值)###例如订单记录
cell.value=第一个值
wb2=加载工作簿('Example.xlsx')
图纸=wb2.sheetnames##图纸名称列表
对于i,枚举中的表(表):##对于每个表
ws=wb2[工作表[i]]
范围\u列表=ws.merged\u单元格\u范围
对于范围列表中的范围:
第一个单元格=ws[_range.split(':')[0]]#每个范围的第一个单元格
last_cell=ws[_range.split(':')[1]]
行=ws[_范围]#大集合;每个范围内的每个单元格
填写(列表(行)、第一个单元格、最后一个单元格)
作为参考,行
如下所示:(,,)
这就是新Excel表格的样子:前7行变得杂乱无章
考虑到我上面的代码,我可以包括/执行哪些操作来跳过Excel工作表的前7行,或从取消合并中排除这些行
合并的单元格范围是一个列表,因此您只需在索引30(6行*5列)之后开始迭代即可
这对我有用
import pandas as pd
xls = pd.ExcelFile('C:/Users/rschuell/Desktop/Data.xlsx')
df = xls.parse('Data', skiprows=4, index_col=None, na_values=['NA'])
print(df)
@马斯特弗洛达-我试过你的答案,但不起作用。它与我希望代码执行的相反——前7行保持未合并状态,但其余行保持合并状态。有什么问题吗?@masterfloda-我也试着打印出范围列表[11://code>,但我只得到列表的前8项作为输出。您确定ws.merged\u cell\u ranges是一个列表吗?
for _range in range_list[30:]:
import pandas as pd
xls = pd.ExcelFile('C:/Users/rschuell/Desktop/Data.xlsx')
df = xls.parse('Data', skiprows=4, index_col=None, na_values=['NA'])
print(df)