0
0 комментариев

Здравствуйте, имеется xls(Excel таблица) обьединенные ячейки с определенным стилем(цвет, шрифт и т.д.). Нужно с помощью Python и xlrd,xlwt библиотек перенести эти обьединеные ячейки на несколько строк ниже с сохранением стиля. Нашел способ переноса с сохранением стиля одной ячейки, но мне надо перенести или же применить стиль к обьедененным ячейкам. При обьединении ячеек, стиль затирается на стандартный.
Ниже код перезаписи ячейки с сохранением стиля:

def _getOutCell(outSheet, colIndex, rowIndex):
""" HACK: Extract the internal xlwt cell representation. """
#return list
row = outSheet._Worksheet__rows.get(rowIndex)
if not row: return None
 
cell = row._Row__cells.get(colIndex)
return cell
 
def setOutCell(outSheet, row, col, value):
""" Change cell value without changing formatting. """
# HACK to retain cell style.
previousCell = _getOutCell(outSheet, col, row)
 
# END HACK, PART I
 
outSheet.write(row, col, value)
 
# HACK, PART II
if previousCell:
    newCell = _getOutCell(outSheet, col, row)
    if newCell:
 
        newCell.xf_idx = previousCell.xf_idx
# END HACK

Код обьединения ячеек:

 rb = xlrd.open_workbook(template_name + ".xls", formatting_info=True)
 outBook = xlutils.copy.copy(rb)
 outSheet = outBook.get_sheet(0)
 outSheet.write_merge(row1,row2,col1,col2,value)

Пробовал обьединять ячейки и потом каждой изменять стиль — стиль напросто не применяется, если сначала разделенным ячейкам применить стиль, а потом обьединить -стиль затирается. Подскажите возможные способы решения данной проблемы.


Добавить комментарий