Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中跳过Excel工作表的前几行_Python_Excel_Python 3.x_Openpyxl - Fatal编程技术网

如何在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)