Thanks,@ A лександ р Дмитр и ев 下面是一个完整的工作示例,它向下扫描列A,查找年份何时更改,并在这些行之间插入分页符。
import openpyxl, os
from openpyxl.worksheet.pagebreak import Break, RowBreak
path = 'path to folder with file'
f = 'pb.xlsx' # data file input is as follows
'''
A B
------ ------
2020 a
2020 b
2021 c
2021 d
2022 e
2023 f
'''
wb = openpyxl.load_workbook(filename=os.path.join(path, f))
worksheet=wb.active
row_break = RowBreak()
for i in range(worksheet.max_row):
r = i + 1
A = worksheet['A%s'%r]._value
if i and A != oldA:
row_break.append(Break(id=i)) # i to insert before this row, r
oldA = A
worksheet.row_breaks = row_break
wb.save(os.path.join(path,'so.xlsx'))
wb.close()
5条答案
按热度按时间fumotvh31#
2.6.2版本
@goocheeze回答正确除了...
应该是
l7wslrjt2#
你可以使用worksheet.page_breaks.append(page_break)来插入一个page_break,详情请参见openpyxl源代码。下面是一个例子:
不知道为什么作者用“id”这个名字来指代分页符的行号,用“row_number”可能会更好。
bgtovc5b3#
vawmfj5a4#
我把我的程序、Python和IDE搬到了一台新电脑上。我正在使用“ws.page_breaks.append(page_break)”,得到了一个关于无法附加元组的错误,尽管它在我的另一台计算机上工作正常。
我使用“try/ except”格式更改了代码,以允许“page_breaks/ row_breaks”。
我的解决方案如下:
ehxuflar5#
Thanks,@ A лександ р Дмитр и ев
下面是一个完整的工作示例,它向下扫描列A,查找年份何时更改,并在这些行之间插入分页符。
生成的电子表格在年份更改的行之间具有分页符:示例输入文件有4页。