【问题标题】:Writing List to Loaded Excel Workbook using dataframes or other使用数据框或其他将列表写入加载的 Excel 工作簿
【发布时间】:2018-05-22 01:08:29
【问题描述】:

我在寻找将列表写入已加载的 Excel 工作表然后将结果另存为 xlsx 的最佳方法时遇到了一些麻烦。我希望我的代码做的是获取我创建的列表并将它们放在加载的工作簿的特定列中。我认为使用数据框可能有一种更简单的方法,但我不知道如何。理想情况下,我想保存加载工作簿的格式。我的代码无法正常工作。我正在使用 Anaconda 的 Spyder。

col_test = [1L, 2L, 3L, 4L, 5L]

我的代码是这样的

import xlrt
from xlrd import open_workbook
rb = open_workbook("Excel FDT Master_01_update.xlsx")
s = rb.sheet_by_name('INPUT')
r = 5
for test in col_test:
    s.cell(row = r, column = 1).value = test
    r += 1
rb.save('didthiswork.xlsx')

【问题讨论】:

  • 在我看来,您需要将第 5-9 行的 Col 1 分配给列表中的每个值。对吗?
  • 是的,没错。谢谢。
  • “不起作用” - 会发生什么? xlrtxlrd 的错字吗?据我所知,xlrd 仅适用于 .xls 格式,而不适用于您 should use openpyxl 的 .xlsx。

标签: python excel dataframe


【解决方案1】:

我会使用pandas

import pandas as pd

col_test = [1L, 2L, 3L, 4L, 5L]
data = pd.read_excel('workbook.xlsx', 'INPUT')

# Write to specific column name
start_row = 5
for i, val in enumerate(col_test):
    data.iloc[start_row + i, 'COL_NAME'] = val


writer = pd.ExcelWriter('output.xlsx')
data.to_excel(writer, 'NewSheet')

为特定的cell赋值

read_excel

to_excel

【讨论】:

  • ValueError: Can only index by location with a [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] 这是我尝试时得到的.感谢您的帮助。
  • 我使用 'B' 作为 COL_NAME
  • 嗯。我会做data.head() 来显示前 5 行并验证“B”是正确的列名
  • 你能解释一下 data.head() 会做什么吗?我不明白你的意思,抱歉。
  • Do print(data.head()) 它将向您显示前五行的列名,以便您将实际的列名放入我在答案中提供的代码中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 2016-12-03
  • 2020-09-30
相关资源
最近更新 更多