gpt4 book ai didi

openpyxl - 确定 openpyxl 中的工作表是否为空

转载 作者:行者123 更新时间:2023-12-02 21:02:20 25 4
gpt4 key购买 nike

我有一个应用程序,如果已经有数据,我将工作表写入最后一列 + 2,如果工作表为空,则写入最后一列 + 1。我得到了我认为是空的工作表,如下所示:

from openpyxl.workbook.workbook import Workbook
book = Workbook()
sheet = book.active

当我执行 sheet.max_rowsheet.max_column 时,我得到了两个属性的 1。我想得到零,所以我执行以下操作:

if sheet.max_row == 1 and sheet.max_column == 1 and not sheet['A1'].value:
start_col = 1
else:
start_col = sheet.max_column + 2

必须检查单元格的值似乎有点矫枉过正,更不用说容易出错了。我最初期望以下方法起作用:

if sheet.max_column == 0:
start_col = 1
else:
start_col = sheet.max_column + 2

max_rowmax_column 总是 >= 1 是有原因的吗?这是错误、有意设计的功能还是其他东西的合理副作用?最后,是否有解决方法(例如 sheet.isempty())。

顺便说一句,我在浏览错误跟踪器时发现了以下评论:https://bitbucket.org/openpyxl/openpyxl/issues/514/cell-max_row-reports-higher-than-actual#comment-21091771 :

Rows with empty cells are still rows. They might be formatted for future use or other stuff, we don't know. 2.3 has slightly improved heuristics but will still contain rows of empty cells.

这(以及我无法再找到链接的另一条评论)让我相信第一个单元格实际上始终存在。在这种情况下,是否值得提交功能请求?

最佳答案

确定工作表是否为“空”的唯一可靠方法是查看 _cells 属性。但是,这是内部 API 的一部分,可能会发生变化。事实上,它几乎肯定会发生变化。

max_rowmax_column 属性在内部用于计数器,必须为 1 或更多。

没有相关代码和测试的功能请求将被拒绝,我对一般的“空”工作表的想法相当怀疑。

关于openpyxl - 确定 openpyxl 中的工作表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37667315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com