15
Мар
2016

Вывод кириллицы в xlwt Python 3.x

Я просто хотел подсветить колонки с id... простите за качество кода

st = xlwt.easyxf('pattern: pattern solid;')
st.pattern.pattern_fore_colour = 3

with xlrd.open_workbook(filename) as book:

    wBook = xlwt.Workbook(encoding="utf-8") # главное не ascii который default

    for sheetIndex in range(book.nsheets):
        sheet = book.sheet_by_index(sheetIndex)
        wSheet = wBook.add_sheet(sheet.name)
        header = findHeader(sheet, True)
        header.checkSelf()

        for rowIndex in range(sheet.nrows):
            row = sheet.row(rowIndex)

            for columnIndex in range(len(row)):
                cell = row[columnIndex]

                if(int(cell.ctype) in (1, 2)):
                    if(columnIndex == header.indexOfId and cell.value in idList):
                        wSheet.write(rowIndex, columnIndex, str(cell.value), st)
                        cell.ctype = 2
                    else:
                        wSheet.write(rowIndex, columnIndex, str(cell.value))

если попадается ячейка с кириллицей он будет просто молча записывать. конечно же файл потом ругаться на повреждение

если начать шаманить с str().encode('whatever') str.decode('whatever') то рано или поздно он обмолвится на UnicodeEncodeError

Источник: https://ru.stackoverflow.com/questions/502984/%D0%92%D1%8B%D0%B2%D0%BE%D0%B4-%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D1%8B-%D0%B2-xlwt-python-3-x

Тебе может это понравится...

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