3

我想在 python 中创建一个 XLSX 文件。为此,我使用xlsxwriter

在我的 XLSX 中,我想使用write_rich_string方法突出显示部分文本。

但是,我的字符串不是固定值。我要突出显示的部分可以随机放入其中。或者我可以有多个文本部分来突出显示。

那么,我可以为 write_rich_string 的调用创建一个“参数列表”吗?制作这个的方法是什么?

例子:

mystring = "I want this in [tag_1]yellow[/tag_1] and this in [tag_2]green[/tag_2]."

worksheet.write_rich_string('A1',
                        'I want this in',
                        yellow, 'yellow',
                        ' and this is ',
                        green, 'green')

worksheet.write_rich_string('A1', my_list_of_parm)
4

1 回答 1

7

如果我明白你在问什么......你有一个这样的列表:

my_list_of_parm = ['I want this in',
                   yellow, 'yellow',
                   ' and this is ',
                   green, 'green']

并且您想将其write_rich_string作为一堆单独的参数(以及一个普通参数)传递给。

解包参数列表下的教程中解释了这样做的方法:只需放在*beforemy_list_of_parm中,它将被解包到单独的参数中:

worksheet.write_rich_string('A1', *my_list_of_parm)

一般来说,如果要将列表(或其他可迭代)转换为单独的值,反之亦然,*答案是:

>>> def func(a, b, *args):
...     print(args)
>>> func(1, 2, 3, 4, 5)
[3, 4, 5]
>>> a, b, *rest = [1, 2, 3, 4, 5]
>>> rest
[3, 4, 5]
>>> func(1, *rest)
[4, 5]

但是对于你能做什么和不能做什么的确切规则,你需要阅读文档。

于 2013-09-12T09:15:21.687 回答