说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
本案例有一个 Excel,需要删除表中有「合计」字样的行及其下3个行,其中「合计」是一个有合并单元格的行,其下 3 个行也有可能是合并单元格的情况,这种样例数据可以自己用 Excel 构造一个。
代码如下:
import pandas as pd
import xlwings as xw
wb = xw.Book('demo.xlsx')
sheet = wb.sheets[0]
sheet
# <Sheet [demo.xlsx]报表>
# 获取「合计」所在的Excel行号
df = pd.DataFrame(sheet.used_range.value)
rows = df[df.iloc[:, 0] == '合计'].index+1
rows
# Index([9, 25, 36], dtype='int64')
# 重点:每批删除四行,但次删除会重新更新行号,需要重新计算
n = 0
for i in rows:
i -= n*4
for _ in range(4):
sheet.range(f'{i}:{i}').delete()
# print(i)
n += 1
wb.save('demo-done.xlsx')
wb.close()
这样就完成了这个操作。
(完)
更新时间:2023-08-03 12:09:20 标签:python xlwings excel