Openpyxl 读取并 returns 一个 None 每隔一个单元格

Openpyxl reads and returns a None every second cell

我正在尝试使用 load_workbook 方法读取 xlsx,它运行良好。但是,如果列中有一个空单元格并且工作簿加载了 "use_iterators or read_only" 选项集,则 rows() 方法会在该列中每个原始单元格值之后的输出中添加一个 'None' 值。如果数据范围内的列中没有空单元格,则没有问题。

请在下面找到我正在读取的 excel 文件的代码和数据:

Excel 文件:book1.xlsx

数据范围: (A 列,第 1-7 行)

空单元格

1

空单元格

2

3

4

5

代码:

  Book=openpyxl.load_workbook(filename='book1.xlsx', read_only=True, data_only=True)
  ws=Book.get_sheet_by_name('sheet1')
  for row in ws.rows:
      for col in row:
           print col.value

实际输出(当read_only选项为真时):

None

1

None

None

2

None

3

None

4

None

5

预期输出:

None

1

None

2

3

4

5

我仍然无法解决这个问题,因为我仍然面临同样的问题。请原谅我的任何幼稚错误。我是 python 和 openpyxl 的新手,我来这里只是为了寻找问题的答案。任何帮助将不胜感激。

根据 "Charlie Clark"(在 openpyxl google 组中)的确认,这是当前版本的 openpyxl 中的错误。这适用于由于未更新计数器而具有空行的任何工作表。这在 2.2 分支中已修复,发布时将在 2.2.1 中。