2013-04-11 2 views
1

Я относительно новичок в кодировании в Python, и вот моя проблема: 1- Когда я обновляю данные существующего файла .xlsx (используя openpyxl), результат является .xlsx, который теряет все предыдущее форматирование. Я также пробовал использовать .xls (используя xlwt и xlrd), но ничего не изменилось. 2- Итак, я решил сохранить этот файл неформатированного результата и применить все форматирование файла .xls (x).Python - применить форматирование существующей книги к другой книге

Есть ли прямой способ сохранить форматирование на шаге 1? если нет, как я могу реализовать шаг 2?

P.S: Я пытался справиться стили с xlutils.styles ... но я не успел ...

Спасибо за вашу помощь!

+1

В настоящее время поддержка форматирования пакетов Python, работающих непосредственно с файлами Excel (без самого Excel), довольно слаба. Если вы будете делать это на машине с Excel, лучшим вариантом сейчас (если вы хотите придерживаться Python) является использование чего-то типа 'pywin32' или' pywinauto'. Если вы открыты для опций, отличных от Python, VBScript на самом деле не так уж плох, и он уже включен в систему. –

ответ

0

Вы можете взять формат ячейки с xlrd и установить ее как стиль ячейки, которую вы пишете в xlwt. Атрибут ячейки xf_index является экземпляром объекта XFStyle и может быть сброшена непосредственно в аргумент стиля метода write, например, так:

import xlwt,xlrd 
readbook = xlrd.open_workbook('book.xls', formatting_info=True) 
readsheet = readbook.sheet_by_index(0) 
cell = sheet.cell(0,0) 
writebook = xlwt.Workbook() 
writesheet = writebook.add_sheet('sheet1') 
writesheet.write(0,0,'First Cell', cell.xf_index) 

Оттуда вы можете перебирать в соответствии с форматом каждой ячейки или вы можете написать каждый формат для строк или столбцов, как показано здесь: https://github.com/python-excel/xlwt/blob/master/xlwt/examples/row_styles.py

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

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