Python Excel (xlrd, xlwt) — как скопировать стиль из одной ячейки и поместить его в другую

В частности, я пытаюсь открыть существующую книгу и записать в нее некоторые данные.

Однако всякий раз, когда я пишу данные, они стирают границы этих ячеек.

Поэтому мне интересно, есть ли способ скопировать стиль этой ячейки перед записью в нее, а затем повторно применить ее.

Я думаю, что могу быть на правильном пути с этим кодом?

from xlrd import open_workbook
from xlwt import easyxf
from xlutils.copy import copy
from xlutils.styles import Styles

rb=open_workbook('source.xls',formatting_info=True)
styles = Styles(rb)
rs=rb.sheet_by_index(0)
wb=copy(rb)
ws=wb.get_sheet(0)

for i,cell in enumerate(rs.col(2)):
    if not i:
      continue
    cell_style = styles[rs.cell(i,2)]
    ws.write(i,2,cell.value,cell_style)

wb.save('output.xls')

Но я получаю эту ошибку:

AttributeError: NamedStyle instance has no attribute 'font'

person Greg    schedule 20.10.2011    source источник


Ответы (1)


Проблема здесь в том, что xlrd.NamedStyle сильно отличается от xlwt.XFStyle.

Вопрос кажется дубликатом Сохранение стилей с использованием python xlrd, xlwt и xlutils.copy

person Cito    schedule 10.11.2011