1

Python の xlwt を使用して Excel スプレッドシートを作成していますが、「.」を使用して数値をフォーマットする必要があります。ブラジルのポルトガル語のように、千単位の区切り記号として。

私が試してみました:

style.num_format_str = r'#,##0'

そして、千単位の区切り記号を に設定し','ます。

を設定しようとするとnum_format_str to '#.##0'、数値が 1.234 ではなく 1234.000 としてフォーマットされます。そして、OpenOffice で n ドキュメントを開いてセルをフォーマットすると、セルの言語を「ポルトガル語 (ブラジル)」に設定でき、OpenOffice はフォーマット コードを として表示しますが"#.##0"、セルを設定する方法が見つかりません。ブラジルポルトガル語への言語。

何か案は?

4

1 に答える 1

6

桁区切り記号 (および小数点の「ポイント」など) は、ロケールに依存しない方法で XLS ファイルに記録されます。記録された千単位の区切り記号はコンマです。表示方法は、ユーザーのロケールによって異なります。OpenOffice calc では、ユーザーはデフォルトのロケール (ツール / オプション / 言語 / ロケール設定) を上書きできます。

xlwt では、num_format_str を として"#,###.00"、データを として次float("1234567.89")のように記述します。

import xlwt
b = xlwt.Workbook()
s = b.add_sheet('x')
style = xlwt.easyxf("", "#,###.00")
s.write(0, 0, 1234567.89, style)
b.save("locale_fmt_demo.xls")

OO Calc で出力ファイルを開き、さまざまなロケール設定を試してください。私はこれらの結果を得ました:

English (Australia): 1,234,567.89  
Portuguese (Brazil): 1.234.567,89
French (France):     1 234 567,89
于 2010-05-15T13:19:51.987 に答える