【发布时间】:2020-10-03 08:13:21
【问题描述】:
openpyxl 工作表的尺寸似乎比实际的电子表格多一个。例如,我创建了一个 3x3 Excel 文件,如下所示:
food | price | weight |
banana | 15 | 20.3 |
orange | 13 | 33.2 |
但是openpyxl工作表ws有以下属性:
ws.max_column = 4
ws.max_row = 4
ws.dimensions = A1:D4
是否故意这样做,以便我们可以使用 range(1, max_row) 和 range(1, max_column) 进行迭代而不添加 +1?
【问题讨论】:
-
听起来您在现有工作表中添加了一些单元格。您几乎不需要在自己的代码中使用
ws.max_row或ws.max_column。 -
查理,你是对的——max_row、max_column和维度都是内存中的只读属性。当我们添加一个新单元格甚至只是访问一个单元格时,它们会发生变化。我必须查找 ws["D4"] 而不在 shell 中设置一个值,使其成为 4x4 ws。现在我用“ws[”D4”] = None”将它保存到一个excel文件中,然后将其加载回来,这次它显示为3x3。所以我想只要我们不向工作表添加或访问新单元格,我们仍然可以使用它们。教程有这个注意:直接访问它们会在内存中创建它们,即使你没有给它们赋值。
标签: openpyxl