将输出写入相同的输出Excel文件

时间:2018-10-31 11:43:20

标签: python excel python-3.x pandas

我正在执行Web抓取,并且每天都将数据帧的输出写入新的Excel工作簿中。我想将每天的输出添加到已经存在的excel文件中,但我不知道该怎么做。谁能帮我解决这个问题!

writer = pd.ExcelWriter('output'+dte.strftime("%Y-%m-%d")+'.xlsx')
for each in channel_id:
        start_time=0
        start_time = time.time()
        df = pd.DataFrame()
        a=get_all_video_in_channel(each)
        print(len(a))
        df=df.append(get_links(a),ignore_index=True)
        df = df.set_index('link').transpose()
        #print(df)
        df.to_excel(writer, 'Sheet'+str(count))
        writer.save()
        print("--- %s seconds ---" % (time.time() - start_time))
        count=count+1

上面是用于将数据帧写入excel文件的代码的一小段(一天)。我希望每天使用同一张excel文件。

2 个答案:

答案 0 :(得分:0)

使用openpyxl

假设您有一个现有的excel file-- 'output'+dte.strftime("%Y-%m-%d")+'.xlsx',其工作表名称为Sheet1。您可以执行以下操作:

from openpyxl import load_workbook

book = load_workbook('output'+dte.strftime("%Y-%m-%d")+'.xlsx')
writer = pd.ExcelWriter('output'+dte.strftime("%Y-%m-%d")+'.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(writer, 'Sheet1', index=None, startrow=1, header=None)
writer.save()

让我知道是否有帮助。

答案 1 :(得分:0)

这应该做您想要的。

from openpyxl import load_workbook

workbook_name = 'C:\\your_path\\Book1.xlsx'
wb = load_workbook(workbook_name)
page = wb.active

# New data to write:
child = [['one','two','buckle my shoe'], ['three','four','open the door']]

for info in child:
    page.append(info)

wb.save(filename=workbook_name)