openpyxl:找到每列的最高行

时间:2014-11-02 17:54:09

标签: python excel openpyxl

我是python编程的新手。我编写了一个脚本来从api获取数据(使用python 2.7.8),现在我想将它添加到excel电子表格中,我保存所有数据。

在我的电子表格中,每一行都是一天,但有些数据在30天之后才可用,因此我的某些列并未完全填充到当前日期。基本上,并非所有列长都相同。

我想阅读每一列,找到该列的最高行,然后将我的数据点添加到该列的末尾。如果所有列的长度都相同,这很简单,但我不明白如何分别找到每列的长度。

我已经阅读了openpyxl的文档,但我是python的新手,我并不是真的了解所有内容。我认为解决方案将包含类似于每列的内容,获得最高行'然后我会将每个数据点附加到该列。但是我不明白如何为每一栏做出“''部分。找到每列的长度也可以。

提前致谢

编辑:我想出了一个解决方法:我知道列的相对长度,所以我从最后一行的数字中减去了它:

last_row = ws.get_highest_row() + 1
col_num = 1
dataRow_length = len(dataRow)
row_offset = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 7, 14, 28, 1, 2, 3, 7, 14, 28]

for i in range(0, dataRow_length - 1):
    ws.cell(row=(last_row - row_offset[col_num - 1]), column=col_num).value = dataRow[i]
    col_num = col_num + 1

1 个答案:

答案 0 :(得分:1)

如果迭代工作表的行,则始终可以找到行的长度。这应该足以满足您的目的。如果没有,请提供一些代码,以便更清楚地了解您想要做什么。