6

タスク:
PythonパッケージpyExcelerator(xlwtと比較可能)を使用して、csvファイルからフォーマットされたExcelテーブルを生成します。以下(≤)および以上(≥)の記号を記述できる必要があります。

これまでのところ:
Pythonソースコードに次の行を追加することで、テーブルをUTF-8エンコードのcsvファイルとして保存できるため、テキストエディタで特殊文字を表示できます。

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

問題:
ただし、pyExceleratorのFontクラスのフォントとしてUTF-8を選択するオプションはありません。唯一のオプションは次のとおりです。

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エンコーディング名はどれですか?これらの特殊文字を生成する別の方法はありますか?

4

3 に答える 3

5

これは、pyexcelerator またはxlwtUTF-8を使用して文字を書き込むのに役立ちます。

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

編集:

pyexcelerator では動作しないようですが、確認していません。

于 2010-03-19T13:31:24.147 に答える
4

問題を考えすぎている可能性があります。文字エンコーディングは問題になる可能性がありますが、フォントは問題に影響を与えるべきではありません。

いずれにせよ、次のスクリプトを使用して、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 数値インデックスでエンコードされているためです。一般に、可能な場合はユニコードを使用することをお勧めします。

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 インタープリターによって読み込まれたときに特殊文字が正しく解析されません。

于 2009-08-28T22:19:38.800 に答える
1

(1) Re: """ Python ソース コードに次の行を追加することで、テーブルを UTF-8 エンコーディングの csv ファイルとして保存できるため、テキスト エディターで特殊文字を表示できます。

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

UTF-8 でエンコードされた文字を含むファイルを書き込むことができるかどうかは、ファイルを書き込むプログラムのソースで使用されているエンコードに依存しません!

(2) UTF-8 はエンコーディングであり、フォントではありません。Excel FONT レコードのこれらの文字セットは、過去の知る限り素晴らしいものです。デフォルト以外の文字セットを使用する必要があると考えたことのある xlwt ユーザーから聞いたことがありません。Jason が示すように、Unicode オブジェクトを xlwt にフィードするだけです...システムに適切なフォントがある場合 (OpenOffice Calc で文字を表示できるかどうかを確認してください)、問題ありません。

(3) xlwt の代わりに pyExcelerator を使用する特別な理由はありますか?

于 2009-08-28T23:39:36.863 に答える