ValueError:使用 OpenPyXl 时,行或列值必须至少为 1

  • 本文关键字:使用 OpenPyXl ValueError python
  • 更新时间 :
  • 英文 :


我一直在使用Yves Hilpisch的Python for Finance,特别是第12章作为学习如何集成Excel和Python的指南。我目前正在学习如何使用OpenPyxl。但是,我直接从书中复制的代码不起作用,并且不断收到ValueError。这是我正在使用的代码:

#use openpyxl and numpy
import numpy as np
import openpyxl as oxl
#create workbook object
wb = oxl.Workbook()
#create worksheet object
ws = wb.create_sheet(index=0, title='oxl_sheet')
#create data array
data = np.arange(1, 65).reshape((8, 8))
#write bulk data to worksheet
for c in range(data.shape[0]):
    for r in range(data.shape[1]):
        ws.cell(row=r, column=c).value = data[c, r]
        # creates a Cell object and assigns a value
#save and close workbook
wb.save('oxl_book.xlsx')

这是我得到的错误:

Traceback (most recent call last):
File "test1.py", line 14, in <module>
ws.cell(row=r, column=c).value = data[c, r]
File "C:Anaconda2libsite-packagesopenpyxlworksheetworksheet.py", line 307,in cell raise ValueError("Row or column values must be at least 1")
ValueError: Row or column values must be at least 1

我正在使用python 2.7,这可能是问题所在吗?我感谢任何和所有的帮助。

就像我在评论中提到的,对于 excel,您需要从 1 而不是 0 开始行和列(这就是 range 发生的情况(。

这对我有用:

for c in range(1, data.shape[0] + 1):
    for r in range(1, data.shape[1] + 1):
        ws.cell(row=r, column=c).value = data[c - 1, r - 1]

另外,我知道您可以使用 excel 和 python win32com 一次编写整个数组(这比逐个单元格快得多(,所以我确信 openpyxl 在那里也有一些功能。

最新更新