如何在不删除Python中的其余部分的情况下向excel表中添加信息?

2024-09-17 18:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我需要制作一个python脚本,它可以将信息导出到excel工作表,而不删除工作表中的旧信息或工作表。请参见伪代码

上下文:

此功能与刮板一起使用。希望能够将数据扩展到现有的工作表中,创建一个新的工作表,并创建一个新的文件。在

在其他问题的帮助下,我已经非常接近: How to save a new sheet in an existing excel file, using Pandas? 但我希望有可能在现有的床单上扩展。在

伪代码

def OutputDataToExcel(Filename,Sheetname,df): #df is a pandas dataframe
    If Filename and Sheetname exists:
        extend the Sheetname with df (no header)
    elif Filename exists:
        create new sheet with Sheetname
        add df (with header)
    else:
    create new excelfile with Filename
    create new sheet with Sheetname
    add df (with header)

我目前的代码

有些人被评论出来关注问题

^{pr2}$

结果

将创建一个名为Sheetname1的新图纸,并将df添加到此图纸中,而不是添加到Sheetname中。 如果我再次运行它,一个名为Sheetname2和df的新工作表被添加到这里。。。在

我希望有人能帮助我,这是我的第一个问题,所以,请回答与帮助或批评如何提出问题。在


Tags: 代码脚本add信息dfnewcreatewith
1条回答
网友
1楼 · 发布于 2024-09-17 18:20:03

我终于明白了!! 如果有人感兴趣,这里是代码:

import xlsxwriter
import pandas as pd

def outputdata(Filename,Sheetname,df):
    try:
        xlsx_file = pd.ExcelFile(Filename)
    except:
        xlsxwriter.Workbook(Filename)
        xlsx_file = pd.ExcelFile(Filename)

    writer = pd.ExcelWriter(Filename, engine='openpyxl')
    IsSheetThereAlready = False
    for sheet in xlsx_file.sheet_names:
        if sheet == Sheetname:
            df2 = xlsx_file.parse(sheet)
            df2.to_excel(writer,sheet_name= sheet, index=False)
            df.to_excel(writer,sheet_name= sheet, startrow=len(df2)+1, index=False, header=None)
            IsSheetThereAlready = True

        else:
            df2 = xlsx_file.parse(sheet)
            df2.to_excel(writer,sheet_name= sheet, index=False)


    if IsSheetThereAlready is False:
        df.to_excel(writer,sheet_name = Sheetname, index=False)

    writer.save()

    return

相关问题 更多 >