xlwt 生成Excel数据时的问题

python中,利用xlwt可以创建Excel文件,并且提供写入数据、设置格式等多种操作。简单方便。

import xlwt
workbook = xlwt.Workbook()
workbook.add_sheet(sheet_name)  # 比如:'sheet1' 
workbook.save(filepath)  # 包含文件名的路径,可以直接是文件名:'text.xls'

但是其中有个问题需要注意,就是在创建workbook时,没指定字符集国家码。源码如下:

def __init__(self, encoding='ascii', style_compression=0):
    self.encoding = encoding
    self.__owner = 'None'
    self.__country_code = None # 0x07 is Russia :-)
    ...
        

字符集:可能会影响中文输出

国家码:不设置的话,在用别的库进行操作时(比如Apache POI中的HSSF),新加sheet页时,会报错:

countryRecord not found....#$%^%

解决办法有两个:

  • 用Excel打开再保存,就可以操作了~
  • 在生成workbook的时候指定一下,中国国家码是86,也就是0x56

另外,源码国家码处的注释,也很有意思~~

你可能感兴趣的:(python)