2014-11-24 4 views
7

Пожалуйста, может кто-нибудь дать мне пример, как скопировать целый рабочий лист со стилями (из строк и столбцов) на второй лист в той же книге? (в новой книге также будет возможно)Копировать весь лист с openpyxl

спасибо.

P.S .: Я попытался сделать глубокую копию, но это не удалось сохранить измененные ячейки данных.
Назначение: Я пытаюсь заполнить некоторые листы моими данными, и первый рабочий лист - это мой шаблон.

Мне удалось копировать значения , но только в некоторых стилях. Я использую последнюю версию openpyxl, поэтому, пожалуйста, не используйте методы 1.x.

ответ

8

версии 2.4 позволит вам это сделать: copy_worksheet

>>> source = wb.active 
>>> target = wb.copy_worksheet(source) 

Для старых, вероятно, можно скопировать исходный код из here

UPDATE: Вы не можете просто привить этот код в более старые версии библиотеки

+1

Стоит отметить, что версия, на которую вы ссылаетесь, еще не имела окончательной версии. –

+1

Другое дело, что эта функция «copy_workheet», по-видимому, ограничивается только одной книгой. (Источник: http://openpyxl.readthedocs.io/en/default/api/openpyxl.worksheet.copier.html?highlight=copy_worksheet "... из одного листа в другой в пределах одной и той же книги.") Я хотел скопировать рабочий лист из «шаблона» книги в другую книгу выпуска. – Jason

1

Вы не можете сделать это легко. Наилучший подход, вероятно, описан в bug 171

+0

спасибо, что подбадривали меня. наконец, я нашел python-relatorio более полезным. было трудно найти ... –

0

У меня была та же проблема. Я решил использовать копию вместо deepcopy. Я нашел решение на этом site

Я надеюсь, что это сработает для вас!

+0

Причина использования deepcopy заключается в создании нового объекта как копии другого, а не только ссылки – Sam

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

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