2016-01-12 2 views
2

Я пытаюсь использовать ExcelWriter для записи/добавления некоторой информации в книгу, содержащую несколько листов. Впервые, когда я использую эту функцию, я создаю книгу с некоторыми данными. Во втором вызове я хотел бы добавить некоторую информацию в книгу в разных местах на все листы.Python Как использовать ExcelWriter для записи в существующий рабочий лист

def Out_Excel(file_name,C,col): 
    writer = pd.ExcelWriter(file_name,engine='xlsxwriter') 
    for tab in tabs: # tabs here is provided from a different function that I did not write here to keep it simple and clean 
     df = DataFrame(C) # the data is different for different sheets but I keep it simple in this case 
     df.to_excel(writer,sheet_name = tab, startcol = 0 + col, startrow = 0) 
    writer.save() 

В главном коде я дважды вызываю эту функцию с разным col, чтобы распечатать мои данные в разных местах.

Out_Excel('test.xlsx',C,0) 
Out_Excel('test.xlsx',D,10) 

Но проблема в том, что делать это выходом является только вторым вызовом функции, если функция переписывает всю книгу. Думаю, мне нужно загрузить книгу, которая уже существует в этом случае? Любая помощь?

ответ

5

Использование load_book из openpyxl - см xlsxwriter и openpyxl документы:

import pandas as pd 
from openpyxl import load_workbook 

book = load_workbook('test.xlsx') 
writer = pd.ExcelWriter('test.xlsx') 
writer.book = book 
writer.sheets = dict((ws.title, ws) for ws in book.worksheets) 

df.to_excel(writer, sheet_name='tab_name', other_params) 

writer.save() 
+0

Спасибо за ваш комментарий. Следуя вашему предложению, я должен создать книгу в первый раз, а затем при необходимости использовать load_book. Я сделал это, но я получил следующую ошибку: TypeError: copy() получил неожиданный аргумент ключевого слова 'font' – Hamed

+0

См. Http://stackoverflow.com/questions/30102232/pandas-can-not-write-to-excel-file – Stefan

+0

Просто дважды проверял и отлично работает для меня с 'pandas 0.17.1' и' openpyxl 2.3.1'. – Stefan

 Смежные вопросы

  • Нет связанных вопросов^_^