现有一个任务,需要提取一个数据汇总表中的各个人员信息条目,并依据一个模板给每个人生成excel模板,如果模板里有某行的填入数据均为0或空值,则删除该行。
如果直接使用openpyxl删除该行,那么合并单元格的大小和位置都不会随着行删除而改变,同时单元格的内容会错位。
ChatGPT的想法是(针对每一个生成的excel):
1、记录当前所有的合并单元格。
2、取消原有的合并单元格。
3、按照指定的行号删除行。
4、根据删除后的结果重新设置合并单元格。
5、保存修改后的工作簿。
但是在和同事交流的过程中,一个新的想法是(针对模板excel):
1、在模板中将可能涉及删除行的单元格提前取消合并。
2、记录填写内容对应的条目中需要合并单元格集合。
3、依据这个模板该填填,符合条件的该删删,因为没有单元格有合并,删除行没有影响。
4、检测留下的条目,依据2中记录的若干集合,如果有连续出现在集合里的条目,则合并该单元格。
人类的智慧!这个点子真打开了我的思路!