如何向excel工作表中添加信息而不删除Python中的其余信息?
问题 我需要制作一个python脚本,可以将信息导出到excel工作表,而无需删除工作表旧信息或工作表。参见伪代码 上下文: 此功能与刮纸器配合使用。希望能够将数据扩展到现有工作表、创建新工作表和创建新文件 在其他问题的帮助下,我非常接近: 但我想在现有的图纸上扩展 伪代码如何向excel工作表中添加信息而不删除Python中的其余信息?,python,excel,Python,Excel,问题 我需要制作一个python脚本,可以将信息导出到excel工作表,而无需删除工作表旧信息或工作表。参见伪代码 上下文: 此功能与刮纸器配合使用。希望能够将数据扩展到现有工作表、创建新工作表和创建新文件 在其他问题的帮助下,我非常接近: 但我想在现有的图纸上扩展 伪代码 def OutputDataToExcel(Filename,Sheetname,df): #df is a pandas dataframe If Filename and Sheetname exists:
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)
到目前为止我的代码
有些人被批评为关注这个问题
结果
将创建名为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
参考这个问题,我试着在那里寻找答案。它启发了我很多代码。但我不能让它与一张以上的工作表。当我使用中的方法时,旧图纸将被删除
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