当前位置: 首页 > 面试题库 >

如何使用openpyxl将列表写入xlsx

锺离慈
2023-03-14
问题内容

我在Python中列出了一些值,并希望使用openpyxl将它们写入Excel电子表格。

到目前为止,我已经尝试过,其中lstStat是需要写入Excel文件的整数列表:

for statN in lstStat:
    for line in ws.range('A3:A14'):
        for cell in line:
            cell.value(statN)

我收到TypeError:代码段的最后一行无法调用’NoneType’对象。

您能帮我怎样将数据写入Excel文件吗?

干杯托马斯


问题答案:

要将值分配给单元格,请使用=

cell.value = statN

您还需要修复循环。注意,现在,对于其中的 每个 元素lstStat,您都在编写 整个range
。除了不是您想要的,它还不太灵活:如果lstStat元素更多或更少会发生什么?

您想要做的就是循环lstStat并随行增加行号。就像是

r = 3
for statN in lstStat:
    ws.cell(row=r, column=1).value = statN
    r += 1

您还可以使用Python的enumerate函数:

for i, statN in enumerate(lstStat):
    ws.cell(row=i+3, column=1).value = statN

(请注意,cell(row=1, column=1)自OpenPyXL
2.0.0版开始
引用A1
;在早期版本中,A1为cell(row=0, column=0)。)



 类似资料:
  • 我是新的Python和工作在我的第一个项目。我试图让我的代码从一个电子表格中复制数据列,并将其附加到当前存在于主表中的数据中。我能够捕获每个工作表中的数据,并创建一个新的主列表,该列表结合了两个数据集,但我很难将其写入文件。当我测试打印组合列表时,它们看起来是正确的,但是当我添加代码将列表写入文件时,它会挂起。 你能提供的任何帮助都会非常有用! 下面是我的代码。这是我得到的错误 Traceback

  • 我使用supercsv CsvBeanWriter将值写入csv文件。 示例类: 我得到的结果是: 注意

  • 问题内容: 因为不插入换行符,这是将列表写入文件的最干净的方法吗? 似乎会有一种标准的方法… 问题答案: 你可以使用循环: 在Python 2中,你也可以使用 如果你热衷于单个函数调用,请至少移除方括号[],以便一次打印一个字符串(一个而不是一个)-没有理由占用所有内存具体化整个字符串列表。

  • 问题内容: 有 DataFrame.to_sql 方法,但仅适用于mysql,sqlite和oracle数据库。我无法传递给此方法postgres连接或sqlalchemy引擎。 问题答案: 从pandas 0.14(2014年5月发行)开始,支持postgresql。该模块现在用于支持不同的数据库风格。您可以为PostgreSQL数据库传递sqlalchemy引擎(请参阅docs)。例如: 您是

  • 我想在for循环中将列表写入csv文件,每次都在不同的列中。例如,第一次迭代生成一个list=[1,2,3,4,5],第二次迭代生成list=[1,2,3]。我想要输出。csv看起来像: 我得到了以下代码: 相反,输出看起来像这样: 上面所做的是继续编写第一列,并且在下一次迭代中不会更改为新列。如何让python这样做?

  • 问题内容: 我正在寻找使用openpyxl将行插入电子表格的最佳方法。 实际上,我有一个电子表格(Excel 2007),该电子表格具有标题行,其后最多(数千)行数据。我希望将行插入为实际数据的第一行,因此在标题之后。我的理解是,附加功能适合于将内容添加到 结尾 的文件。 阅读有关openpyxl和xlrd(以及xlwt)的文档,除了手动循环浏览内容并将其插入新表(在插入所需行之后)之外,我找不到