首页 > 编程问答 >如何将 Python 列表添加到 Excel 中已有值的列的末尾?

如何将 Python 列表添加到 Excel 中已有值的列的末尾?

时间:2024-07-25 08:59:20浏览次数:11  
标签:python excel

我目前正在尝试编写一个程序,将值附加到列表中,然后将这些值添加到 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)

说明:

  1. 安装 openpyxl 库: 如果还没有安装该库,请使用 pip install openpyxl 安装。
  2. 导入必要的库: 导入 openpyxl 库。
  3. 定义函数 append_list_to_excel 此函数接受 Excel 文件名、工作表名称、要附加的列表和列名作为输入。
  4. 加载工作簿和工作表: 使用 openpyxl.load_workbook() 函数加载 Excel 文件,并使用工作表名称选择特定工作表。
  5. 查找列索引: 迭代第一行并检查单元格值以匹配提供的列名,以找到要附加的列的索引。
  6. 查找下一行的行索引: 使用 sheet.max_row 标识最后一个填充行的索引,并将其递增 1 以获取下一行的索引。
  7. 将列表值附加到列: 迭代列表并将每个值写入相应的单元格,从确定的行索引开始,并为后续值递增行索引。
  8. 保存工作簿: 使用 workbook.save() 方法将更改保存回 Excel 文件。

示例用法:

  • your_excel_file.xlsx 替换为的 Excel 文件名。
  • Sheet1 替换为的工作表名称。
  • 使用要附加的值更新 list_to_append
  • My Column 替换为要在 Excel 文件中添加数据的列的名称。

此代码将加载现有的 Excel 文件,找到指定列和最后一行,并将列表中的值附加到该列,从下一行开始。

标签:python,excel
From: 78790839

相关文章

  • 如何学习Python:糙快猛的大数据之路(学习地图)
    在这个AI和大数据主宰的时代,Python无疑是最炙手可热的编程语言之一。无论你是想转行还是提升技能,学习Python都是一个明智之选。但是,该如何开始呢?今天,让我们聊聊"糙快猛"的Python学习之道。什么是"糙快猛"学习法?"糙快猛"学习法,顾名思义,就是:糙:不追求完美,允许存......
  • Python 中 __get__ 方法的内部原理
    我正在摆弄描述符,结果碰壁了。我以为我可以像使用任何其他方法一样直接调用它,但显然,它似乎不一致或者我遗漏了一些东西。假设我有一个用作描述符的坐标类:|||还有一个Point类,它有2个坐标属性:classCoordinate:def__set_name__(self,owner,name):self._na......
  • 使用带有私钥的云前端生成签名 URL 的问题..使用 Python 3.7 为带有空格的 S3 对象生
    我在使用Python3.7为S3对象生成签名URL时遇到问题。具体来说,键中带有空格的对象的URL会导致“访问被拒绝”错误,而没有空格的对象的URL通常工作正常。但是,并非所有不带空格的对象都能正常工作,带空格的对象始终会失败。fromdatetimeimportdatetime,timedeltaimpo......
  • 有没有更好的方法来在存储库中的一组 python 程序之间共享公共代码
    当我想要快速、轻松地做许多不同的事情时,我会选择Python-即我总是会得到许多Python“程序”-例如一组脚本-或者如果我正在玩一些东西,一堆测试程序等-即始终是许多不同程序的松散集合。但是,我会分享某些内容。例如,如果我正在使用AI-我可能有30个左右完全不相......
  • 如何在Python中从两个不同长度的列表创建DataFrame,为第二个列表中的每个值重复第一个
    我是一个超级初学者,所以请耐心等待。我觉得这应该很容易,但我无法弄清楚。我不确定是否应该创建两个列表,然后将它们组合起来,或者是否有办法以这种方式直接创建DataFrame。我需要一列包含这些值:df=pd.DataFrame({'x1':np.linspace(-2.47,2.69,num=101)})然后我将值A......
  • Python multiprocessing.connection.Connection 的行为不符合规范
    根据python规范,recv()pythonConnection的方法,(从multiprocessing.Pipe()返回,当管道为空且管道的另一端关闭时抛出EOFError(这里参考:https://docs.python.org/3.9/library/multiprocessing.html#multiprocessing.connection.Connection.re......
  • 使用 python Flask 发送邮件中的图像
    我想发送一封包含html代码和图像的电子邮件但在gmail中它说图像已附加,我不想要这样,我只想要电子邮件正文中的图像。html_content=f"<imgsrc="cid:banner"alt=""style="width:80%;">"msg=MIMEMultipart('related')html_part=MIMEText(html_c......
  • 在 python requests modul 中,如何检查页面是否使用“POST”方法或“GET”方法
    如何使用python“requests”模块检查页面是否使用“GET”方法或“POST”方法。我期望输出为True或False,或者GET或Post预期代码:importrequestsurl=f"www.get_example.com"response=requests.get(url)ifresponse.check_get==True:print("get")你......
  • VS Code Python - 如果括号(括号、大括号等)未关闭,内联建议不起作用
    我遇到的问题是,当我在未闭合的括号或方括号“内部”开始变量名称时,VSCode将不会显示任何建议。但是,如果在键入变量名称之前闭合括号,则建议效果很好。如果我可以避免它,我宁愿不将自动完成括号关闭设置为True也不使用TabOut扩展。第一个屏幕截图显示建议在闭括号/方......
  • 在 Azure 上部署代码时使用 Python 的多处理模块是否有意义?
    我们的团队在Azure机器学习(AML)上部署了一个Python脚本来处理存储在Azure存储帐户上的文件。我们的管道由一个ForEach活动组成,该活动调用每个或列出的文件的Python脚本。从Azure数据工厂(ADF)运行它会触发多个单独的管道同时运行......