excel列宽xlwt大写和小写文本

时间:2012-12-17 21:16:34

标签: python xlwt

您好。我正在使用xlwt包和Python来创建一个写入excel文件的应用程序。

我有一个函数可以返回所需的单元格宽度,这样我就可以使单元格足够大以适应文本。但是,当我正在编写大写的文本时,我的函数会崩溃,因为它会返回一个远小于实际文本的宽度。

我不知道是什么问题。任何建议都将不胜感激。

def getWidth(self, num_characters):
    """ Returns the approximate width of a cell. """
    return int((1+num_characters) * 256)

1 个答案:

答案 0 :(得分:0)

您使用getWidth功能所做的就是猜测您需要多少空间。你猜测的原因是每个字母占用不同的空间(“iiiii”占用的空间比“mmmmm”少)。显然,大写字母会占用更多空间。

此问题有两个简单(但不完美)修复:

  1. 增加所有单元格的每个字符的宽度。这意味着修改函数中的值256。我会说增加50%可能会解决你的问题。
  2. 在插入之前,将您插入单元格的所有内容都设为小写。
  3. 选项1的代码与您已经完全相似:

    def getWidth(self, num_characters):
        """ Returns the approximate width of a cell. """
        return int((1+num_characters) * 384)
    

    选项2的代码将涉及在插入之前调用字符串上的lower方法。它看起来像这样:

    my_cell_value = "THIS IS ALL CAPS!"
    my_worksheet.write(1,1,my_cell_value.lower())