首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openpyxl -如何在freeze_panes工作表中无法实现“.xlsx”?

openpyxl -如何在freeze_panes工作表中无法实现“.xlsx”?
EN

Stack Overflow用户
提问于 2020-09-29 06:50:50
回答 1查看 188关注 0票数 1

我在用python 3.7.9在Windows上使用openpyxl 3.0.5。

我试图通过设置'‘作为冻结_窗格的值来阻止它,但是它破坏了.xlsx文件,所以这不是答案。

代码语言:javascript
复制
def x(target_book):
    sheet_data = target_book[sheet_name]
    sheet_data.freeze_panes = ''

请告诉我如何 "freeze_panes“在.xlsx工作表中。

EN

回答 1

Stack Overflow用户

发布于 2020-09-30 01:46:55

当我们想要解冻窗格时,需要以下代码。

代码语言:javascript
复制
def x(target_book):
    sheet_data = target_book[sheet_name]
    sheet_data.freeze_panes = 'A1'
    sheet_data.views.sheetView[0].selection[1] = ''

定义冻结窗格时,xml描述如下所示。

代码语言:javascript
复制
-<sheetViews>
   -<sheetView workbookViewId="0" zoomScaleNormal="85" zoomScale="85" topLeftCell="A65" showGridLines="0">
      <pane topLeftCell="L1" state="frozen" activePane="topRight" xSplit="4"/>
      <selection sqref="A42" activeCell="A42"/>
      <selection sqref="B1:Q84" activeCell="B1" pane="topRight"/>
    </sheetView>
</sheetViews>

当我们将'A1‘设置为freeze_panes时,xml就变成这样了。移除窗格元素。

代码语言:javascript
复制
-<sheetViews>
   -<sheetView zoomScaleNormal="85" zoomScale="85" workbookViewId="0" topLeftCell="A65" showGridLines="0">
      <selection sqref="A42" activeCell="A42"/>
      <selection sqref="B1:Q84" activeCell="B1" pane="topRight"/>
   </sheetView>
</sheetViews>

在这个xml中,第二个选择元素引用了“窗格”属性,但是它已经被删除了。在Excel中打开此.xlsx时会导致错误。

所以我用下面的代码删除了第二个选择元素。

代码语言:javascript
复制
sheet_data.views.sheetView[0].selection[1] = ''

我认为这样做不明智,所以如果你有任何好的答案,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64114301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档