-1

你好。我正在使用 xlwt 包和 Python 来制作一个写入 excel 文件的应用程序。

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

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

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

1 回答 1

0

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

这个问题有两个简单(但不完美)的修复方法:

  1. 增加所有单元格的每个字符的宽度。这意味着修改函数中的值 256。我会说将其增加 50% 可能会解决您的问题。
  2. 在插入之前将要插入单元格的所有内容设为小写。

选项 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())
于 2012-12-17T21:28:22.243 回答