我目前正在尝试编写一个程序,将值附加到列表中,然后将这些值添加到 Excel 数据表中的列中。每次运行该程序时,我都希望在同一列的末尾添加更多值。
所以我不确定如何解决这个问题,而且我在网上找到的其他答案也没有取得多大成功。
以下是使用
openpyxl
库在 Python 中将列表值附加到现有 Excel 文件的列中的方法:
import openpyxl
def append_list_to_excel(filename, sheet_name, list_to_append, column_name):
"""将列表值附加到 Excel 文件中的列。
Args:
filename (str): Excel 文件名。
sheet_name (str): 要附加列表的工作表的名称。
list_to_append (list): 要附加的值的列表。
column_name (str): 要附加列表的列的名称。
"""
# 加载工作簿和工作表
workbook = openpyxl.load_workbook(filename)
sheet = workbook[sheet_name]
# 查找列索引
column_index = None
for col in range(1, sheet.max_column + 1):
if sheet.cell(row=1, column=col).value == column_name:
column_index = col
break
if column_index is None:
raise ValueError(f"找不到名为 '{column_name}' 的列。")
# 查找下一行的行索引
row_index = sheet.max_row + 1
# 将列表值附加到列
for value in list_to_append:
sheet.cell(row=row_index, column=column_index).value = value
row_index += 1
# 保存工作簿
workbook.save(filename)
# 示例用法:
filename = "your_excel_file.xlsx"
sheet_name = "Sheet1"
list_to_append = [1, 2, 3, 4, 5]
column_name = "My Column"
append_list_to_excel(filename, sheet_name, list_to_append, column_name)
说明:
-
安装
openpyxl
库: 如果还没有安装该库,请使用pip install openpyxl
安装。 -
导入必要的库:
导入
openpyxl
库。 -
定义函数
append_list_to_excel
: 此函数接受 Excel 文件名、工作表名称、要附加的列表和列名作为输入。 -
加载工作簿和工作表:
使用
openpyxl.load_workbook()
函数加载 Excel 文件,并使用工作表名称选择特定工作表。 - 查找列索引: 迭代第一行并检查单元格值以匹配提供的列名,以找到要附加的列的索引。
-
查找下一行的行索引:
使用
sheet.max_row
标识最后一个填充行的索引,并将其递增 1 以获取下一行的索引。 - 将列表值附加到列: 迭代列表并将每个值写入相应的单元格,从确定的行索引开始,并为后续值递增行索引。
-
保存工作簿:
使用
workbook.save()
方法将更改保存回 Excel 文件。
示例用法:
-
将
your_excel_file.xlsx
替换为的 Excel 文件名。 -
将
Sheet1
替换为的工作表名称。 -
使用要附加的值更新
list_to_append
。 -
将
My Column
替换为要在 Excel 文件中添加数据的列的名称。
此代码将加载现有的 Excel 文件,找到指定列和最后一行,并将列表中的值附加到该列,从下一行开始。
标签:python,excel From: 78790839