Я пытаюсь скопировать ячейки из одной рабочей книги в другую, чтобы сделать некоторые манипуляции. Несмотря на то, что я могу назначить стиль / значение и назначить его новой книге, я не могу назначить шрифт, заполните существующую книгу новой книгой.
Ниже приведен фрагмент моего кода
from openpyxl import load_workbook
from openpyxl import Workbook
File = load_workbook(filename='testcopy.xlsx')
FileSheets = File.get_sheet_names()
AcSheet = File.active
write_file = Workbook()
wr_ac_sheet = write_file.active
wr_ac_sheet['A1'].value = AcSheet['A1'].value
wr_ac_sheet['A1'].style = AcSheet['A1'].style
write_file.save('copied_excel.xlsx')
Это отлично работает, но если я использую
wr_ac_sheet['A1'].font= AcSheet['A1'].font
я получаю ошибку ниже
File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 90, in write_data
stylesheet = write_stylesheet(self.workbook)
File "C:\Python27\lib\site-packages\openpyxl\styles\stylesheet.py", line 206, in write_stylesheet
stylesheet.fonts = wb._fonts
File "C:\Python27\lib\site-packages\openpyxl\descriptors\sequence.py", line 27, in __set__
seq = [_convert(self.expected_type, value) for value in seq]
File "C:\Python27\lib\site-packages\openpyxl\descriptors\base.py", line 59, in _convert
raise TypeError('expected ' + str(expected_type))
TypeError: expected <class 'openpyxl.styles.fonts.Font'>
Если я пытаюсь напечатать существующий шрифт книги, я получаю его, поэтому он правильно читает
print wr_ac_sheet['A1'].font
<openpyxl.styles.fonts.Font object>
Parameters:
name='Calibri', charset=None, family=2.0, b=False, i=False, strike=None,
outline=None, shadow=None, condense=None, color=
<openpyxl.styles.colors.Color
object>
Parameters:
tint=0.0, auto=None, theme=1L, rgb=None, indexed=None, type='theme',
extend=None, sz=11.0, u=None, vertAlign=None, scheme='minor'
Я хотел бы назначить все свойства ячейки (аналогично формату Painter) новой книге, какие-либо указания о том, как это сделать?