писать специальные символы в таблицу excel пакетом python pyExcelerator / xlwt

Задача:
Я генерирую форматированные таблицы excel из csv-файлов, используя пакет python pyExcelerator (сравнимый с xlwt). Мне нужно иметь возможность писать знаки меньше или равны (≤) и больше или равно (≥).

Так далеко:
Я могу сохранить свою таблицу как csv-файлы с кодировкой UTF-8, чтобы я мог просматривать специальные символы в текстовом редакторе, добавив следующую строку в исходный код python:

#! /usr/bin/env python # -*- coding: UTF-8 -*- 

Проблема:
Тем не менее, нет возможности выбрать UTF-8 в качестве шрифта в классе шрифтов pyExcelerator. Единственные варианты:

 CHARSET_ANSI_LATIN = 0x00 CHARSET_SYS_DEFAULT = 0x01 CHARSET_SYMBOL = 0x02 CHARSET_APPLE_ROMAN = 0x4D CHARSET_ANSI_JAP_SHIFT_JIS = 0x80 CHARSET_ANSI_KOR_HANGUL = 0x81 CHARSET_ANSI_KOR_JOHAB = 0x82 CHARSET_ANSI_CHINESE_GBK = 0x86 CHARSET_ANSI_CHINESE_BIG5 = 0x88 CHARSET_ANSI_GREEK = 0xA1 CHARSET_ANSI_TURKISH = 0xA2 CHARSET_ANSI_VIETNAMESE = 0xA3 CHARSET_ANSI_HEBREW = 0xB1 CHARSET_ANSI_ARABIC = 0xB2 CHARSET_ANSI_BALTIC = 0xBA CHARSET_ANSI_CYRILLIC = 0xCC CHARSET_ANSI_THAI = 0xDE CHARSET_ANSI_LATIN_II = 0xEE CHARSET_OEM_LATIN_I = 0xFF 

У любого из этих наборов символов есть знаки меньше или равны и больше или равны? Если да, то что?
Какое имя кодировки python соответствует этим наборам? Есть ли другой способ генерации этих специальных символов?

Вы можете переоценить проблему. Шрифт не должен играть в этот вопрос, хотя кодировка символов может быть.

В любом случае, я смог использовать xlwt для создания таблицы Excel с символами меньше, чем равными и больше, чем равными со следующим скриптом:

 import xlwt wb = xlwt.Workbook() ws = wb.add_sheet('Test Sheet') lte = u'\u2264' gte = u'\u2265' ws.write(0,0,lte+gte) wb.save('foo.xls') 

Обратите внимание, что – – кодирование: utf-8 – – не требуется, потому что специальные символы кодируются их числовыми индексами unicode. В общем, я рекомендую использовать unicode, где это возможно.

Также можно использовать utf-8 и вводить символы непосредственно в код Python. Это было бы точно так же, кроме как вводить символы:

 #-*- coding: utf-8 -*- import xlwt wb = xlwt.Workbook() ws = wb.add_sheet('Test Sheet') lte = u'≤' gte = u'≥' ws.write(0,0,lte+gte) wb.save('foo.xls') 

Обратите внимание, однако, что вы должны использовать редактор, который знает, что вы сохраняете код Python как UTF-8. Если ваш редактор кодирует файл любым другим способом, специальные символы не будут правильно разбираться при загрузке интерпретатором Python.

Это должно помочь с написанием символов UTF-8 с использованием pyexcelerator или xlwt:

 wb = xlwt.Workbook(**encoding='utf-8'**) 

редактировать:

Кажется, он не работает на pyexcelerator, но я не подтвердил это.

(1) Re: "" "Я могу сохранить свою таблицу как csv-файлы с кодировкой UTF-8, чтобы я мог просматривать специальные символы в текстовом редакторе, добавив следующую строку в исходный код python:

#! /usr/bin/env python
# -*- coding: UTF-8 -*-
«»»

Возможность записи файла с символами, закодированными в UTF-8, НЕ зависит от того, какая кодировка используется в источнике программы, которая записывает файл!

(2) UTF-8 – это кодировка, а не шрифт. Эти кодировки в записи Excel FONT – это взрыв из прошлого AFAIK. Я не слышал от любого пользователя xlwt, который когда-либо считал необходимым использовать, кроме стандартного для кодировки. Просто подайте юникодные объекты на xlwt, как показано Джейсоном … если у вас есть соответствующий шрифт в вашей системе (см., Можете ли вы отображать символы в OpenOffice Calc), вы должны быть в порядке.

(3) Любая конкретная причина использования pyExcelerator вместо xlwt?