python - 值错误: Row or column values must be at least 1 when using OpenPyXl

标签 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:\Anaconda2\lib\site-packages\openpyxl\worksheet\worksheet.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 也有一些功能。

关于python - 值错误: Row or column values must be at least 1 when using OpenPyXl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42102690/

相关文章:

python - 如何加快对数百万行的多个 str.contains 搜索?

python - 将 xarray 数据变量重新分配给 xarray 坐标

python - 由于回复 pidboxes,Redis 在用作 Celery 代理时会占用大量内存

python - 如何在ubuntu中使用python自动连接到SSH?

python - 解释 python 段

python - 性能问题,Python vs C

python - 加速 "closest"字符串匹配算法

python - 从文档中了解 PyTorch 伯努利分布

python - 如何用空格填充Python numpy chararray?

python - 如何计算 50x20 矩阵的类内散布