Записать вывод в тот же выходной файл Excel - PullRequest
0 голосов
/ 31 октября 2018

Я занимаюсь очисткой веб-страниц и каждый день записываю выходные данные фреймов в новую книгу 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 голосов
/ 02 ноября 2018

Это должно делать то, что вы хотите.

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)
0 голосов
/ 31 октября 2018

Использование 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()

Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...