gpt4 book ai didi

python - 如何在不删除 Python 中的其余部分的情况下将信息添加到 Excel 工作表?

转载 作者:行者123 更新时间:2023-12-04 22:31:51 25 4
gpt4 key购买 nike

问题

我需要制作一个 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)

到目前为止我的代码

一些被评论出来以专注于问题
import openpyxl
import pandas as pd

def outputdata(Filename,Sheetname,df):
#try:
#will error if file or sheet cannot be found
#And will extend information to the sheet
xl1 = pd.read_excel(Filename,Sheetname)
xl2 = pd.ExcelFile(Filename)
wb=openpyxl.load_workbook(Filename)
length = len(xl2.parse(Sheetname))
writer = pd.ExcelWriter(Filename,sheet_name = Sheetname , engine = "openpyxl")
df.to_excel(writer,Sheetname, startrow=length+1, index=False, header = None)
writer.book = wb

writer.save()
#writer.close()
#except:
#try:
#will error if file cannot be found
#and will create a new sheet with information
#wb=openpyxl.load_workbook(Filename)
#wb.openpyxl.create_sheet(Sheetname)
#df.to_excel(writer,Sheetname, index=False)
#writer.save()
#writer.close()
#except:
#writer = pd.ExcelWriter(Filename,sheet_name = Sheetname , engine = "openpyxl")
#df.to_excel(writer,Sheetname, index= False)
#writer.save()
#writer.close()

结果

创建一个名为 Sheetname1 的新工作表,并将 df 添加到此工作表中,并将其添加到 Sheetname 中。
如果我再次运行它,则会在此处添加一个名为 Sheetname2 和 df 的新工作表...

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

最佳答案

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

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

关于python - 如何在不删除 Python 中的其余部分的情况下将信息添加到 Excel 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52095254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com