【问题标题】:Openpyxl reads and returns a None every second cellOpenpyxl 每隔一个单元格读取并返回一个 None
【发布时间】:2015-05-21 18:49:25
【问题描述】:

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

请在下面找到我正在读取的 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 选项为真时):

1

2

3

4

5

预期输出:

1

2

3

4

5

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

【问题讨论】:

  • 在邮件列表中也提出(并回答)了同样的问题。用户不必要地偏离了 API 并在范围内创建了其他单元格。
  • 感谢您对更正代码 Charlie 的建议。但是,即使经过这些更正,当我以只读模式打开工作簿时,我仍然遇到同样的问题。如果您能帮我解决这个问题,那将非常有帮助。再次感谢。
  • @charlie,正如您刚刚同意并确认这是一个错误(谷歌群组邮件列表),您能恢复否决票吗?提前致谢。

标签: python openpyxl import-from-excel


【解决方案1】:

根据“查理克拉克”(在 openpyxl 谷歌组中)的确认,这是当前版本的 openpyxl 中的一个错误。这适用于由于未更新计数器而具有空行的任何工作表。这在 2.2 分支中已修复,发布时将在 2.2.1 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多