【发布时间】:2021-08-02 14:44:21
【问题描述】:
我正在编写一个 Python 脚本,该脚本需要将数据集合写入 Excel 文档中的特定列。
更具体地说,我正在调用一个返回项目列表的 API。列表中的每个项目都包含多个数据字段(项目名称、项目版本等)。我想遍历列表中的每个项目,然后将选定的数据字段写入 Excel 中的特定列。
目前,我正在遍历项目列表,然后将我想要的数据字段作为列表附加到一个空列表中(创建一个列表列表)。完成对项目列表的迭代后,我将迭代列表列表并附加到 Excel 文档的每一行。这可行,但会使写入特定列变得复杂。
这是我目前拥有的大致代码:
import requests
import json
from openpyxl import Workbook
def main():
wb = Workbook()
ws = wb.active
r = requests.get(api_url) # Can't provide URL
items_list = r.json()['items']
filler_list = []
for item in items_list:
item_name = item['itemName']
item_version = item['itemVersion']
# etc...
filler_list.append([item_name, item_version])
for i in filler_list:
ws.append(i)
wb.save('output.xlsx')
if __name__ == "__main__":
main()
上面的代码将在第 1 行、第 2 行等写入 Excel 文档,因为填充列表中附加了许多列表。我更愿意做的是指定我希望将每个项目名称或项目版本添加到我想要的任何列字母中。这对openpyxl可行吗?主函数看起来像这样:
def main():
wb = Workbook()
ws = wb.active
r = requests.get(api_url) # Can't provide URL
items_list = r.json()['items']
for item in items_list:
item_name = item['itemName']
item_version = item['itemVersion']
# Add item name to next open cell in column B (any column)
# Add item version to next open cell in column D (any column)
wb.save('output.xlsx')
【问题讨论】:
-
你不能用像
append这样简单的东西来做到这一点,但你仍然可以做到...... -
这能回答你的问题吗? How to write a list to Excel column?
-
您的链接解决方案与@sj95126 的解决方案比较相似。我认为在我的情况下两者都会很好用。