Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用xlwt编写单元格时如何使用本地化样式_Python_Excel_Localization_Xlwt - Fatal编程技术网

Python 使用xlwt编写单元格时如何使用本地化样式

Python 使用xlwt编写单元格时如何使用本地化样式,python,excel,localization,xlwt,Python,Excel,Localization,Xlwt,我正在用Python的xlwt编写一个Excel电子表格,我需要使用“.”作为千位分隔符格式化数字,就像巴西葡萄牙语一样 我试过: style.num_format_str = r'#,##0' 它将千位分隔符设置为,' 如果我尝试将num_format_str设置为“#.##0”,我会将数字格式化为1234.000,而不是1.234。如果我在OpenOffice中打开n个文档并格式化单元格,我可以将单元格的语言设置为“葡萄牙语(巴西)”,然后OpenOffice将显示格式代码为“#.##0”

我正在用Python的xlwt编写一个Excel电子表格,我需要使用“.”作为千位分隔符格式化数字,就像巴西葡萄牙语一样

我试过:

style.num_format_str = r'#,##0'
它将千位分隔符设置为
,'

如果我尝试将
num_format_str设置为“#.##0”
,我会将数字格式化为1234.000,而不是1.234。如果我在OpenOffice中打开n个文档并格式化单元格,我可以将单元格的语言设置为“葡萄牙语(巴西)”,然后OpenOffice将显示格式代码为
“#.##0”
,但我找不到将单元格语言设置为巴西葡萄牙语的方法

有什么想法吗?

千位分隔符(以及小数点等)以独立于语言环境的方式记录在XLS文件中。分隔符是逗号。它的显示方式取决于用户的区域设置。OpenOffice calc允许用户覆盖默认区域设置(工具/选项/语言/区域设置)

使用xlwt,将num_格式_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
千位分隔符(以及小数点等)以独立于区域设置的方式记录在XLS文件中。分隔符是逗号。它的显示方式取决于用户的区域设置。OpenOffice calc允许用户覆盖默认区域设置(工具/选项/语言/区域设置)

使用xlwt,将num_格式_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

嗯,我明白了。看起来在OpenOffice中,我可以为每个单元格设置不同的区域设置,但不能在Excel中设置。我用三个单元格制作了一个文档,它们的编号和格式相同,但区域设置不同,并以.ods和.xls格式保存。.ods为每个单元格保留区域设置,但.xls将为所有单元格保留相同的区域设置。“所有单元格的.xls将具有相同的区域设置”--不,正如我所说,格式是以独立于区域设置的方式记录的。该文件没有“具有”区域设置。Excel根据用户的区域设置显示文件。嗯,我明白了。看起来在OpenOffice中,我可以为每个单元格设置不同的区域设置,但不能在Excel中设置。我用三个单元格制作了一个文档,它们的编号和格式相同,但区域设置不同,并以.ods和.xls格式保存。.ods为每个单元格保留区域设置,但.xls将为所有单元格保留相同的区域设置。“所有单元格的.xls将具有相同的区域设置”--不,正如我所说,格式是以独立于区域设置的方式记录的。该文件没有“具有”区域设置。Excel根据用户的区域设置显示文件。