我正在使用openpyxl修改现有的Excel文件。在Excel文件中,有列折叠。我想编写一些代码,以便可以显示所有列折叠或隐藏所有列折叠。
我尝试使用此代码实现目标。但是,有两个问题:
ws.column_dimensions.group(start='A', end='C', hidden=False)
首先,列已被分组。但是,仅当列尚未分组时,此代码才对我有用。 第二,隐藏参数似乎不会影响输出。实际上,无论我是否将False的标志设置为True,我都会得到一个隐藏的组。
for col in ['A', 'B', 'C']:
ws.column_dimensions[col].hidden=False
我期望的是,它需要所有列组/折叠并关闭它们。取而代之的是,这段代码隐藏了所有列(从A到C)。
答案 0 :(得分:2)
不是您问题的完全答案,但这是我对从Google表格生成的.xlsx文件进行源分割时发现的内容。首先,您使用View
解压缩.xlsx文件,然后进入unzip
或等效文件。
假设我要创建三个嵌套的分组列的大纲级别:
最顶层(最高)来自xl/worksheets/sheet1.xml
第二级(中间)来自6:40
第三(下)级来自6:13
,它们跨越6-40列。 (列号从'A'开始为1索引)。这是xlsx文件中的代码:
6:8
一些注意事项:
<cols>
<col min="6" max="8" outlineLevel="3"/>
<col min="9" max="13" outlineLevel="2"/>
<col min="14" max="40" outlineLevel="1"/>
</cols>
,而OutlineLevel 2将跨越6:40
然后是生成的openpyxl代码:
6:13
我将查看是否可以为https://stackoverflow.com/users/2385133/charlie-clark的软件包文档添加一些内容。这纯粹是xlsx规范(或行为)的细微差别,而不是openpyxl特定的。但是,最好在API中提供示例。