python在excel中的应用:freeze_panes冻结不是第一行的问题,其实可能是一个小细节。

博客讲述了在使用Python的openpyxl库处理Excel文件时,遇到的一个关于冻结窗格的意外问题。作者发现程序应冻结第一行,但实际上显示冻结的是第181行。经过排查,问题出在Excel文件自身,而非单元格格式。原因是Excel会记住上次关闭时的位置,而Python读取时将显示的第一行当作工作表顶部。解决方案是确保工作表实际开始于需要冻结的位置。
摘要由CSDN通过智能技术生成
import openpyxl
wb = openpyxl.load_workbook('man.xlsx')
sheet = wb.active
sheet.freeze_panes = 'A2' 
wb.save('changetest.xlsx')

其实这是一个很简单的应用,但是可能出现的问题会让我们很意外。

这个程序看上去没有问题,但是实际运行过程中却出了一点小意外。

按理应该冻结第一行,可是运行结果显示的却是“181行”,很让我纳闷。

请教了一些前辈,他们都说没有问题。

后来我尝试了一下,点击第一行看看,是否是格式问题,一看格式是文本格式,然后我就修改成常规,保存后,再次运行,这下成功了。为此我还自鸣得意了一番。

可是,真的是真个问题吗?我又重新打开原本的文件(没有修改过),发现一个问题,打开后第一行显示的是181行,我又反复关掉原文件又打开,始终开头显示的181行,这下找到问题的关键了。我把文件拖到开头,然后保存了一下。再次运行,结果你懂得,成功了。

原来不是单元格的格式问题,是工作簿的问题,excel可能就是这么设置的,如果是已经存在的文件,再次打开显示的是上次修改保存后关掉的位置,而python也是直接把打开后的工作表,显示出来的第一行当作是工作表的第一行,其实未必。

所以下次运行冻结窗格的时候,看看需要操作的工作表的第一行是否是打开后显示的第一行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值