如何使用 xlwings 为命名范围内的一个单元格赋值?

How assign value to one cell in named range by using xlwings?

我也是 Python 和 xlwings 的新手。 我需要逐步为命名范围内的每个单元格分配不同的值。

xw.Range('Named range').value = [new_cell_values_as_list_of_lists]

这是一个如何为整个范围赋值的示例 Named range。这不是我现在需要的。

我搜索了 xlwings-docs、Whosebug 等,但没有任何想法... 两种方式都没有

xw.Range(1,'Named range', 22).value = 'yes'

也不

xw.Range(1, 'Named range', '22').value = 'yes' 

不工作。 请帮助我。

在xlwings的未来版本中,你应该可以直接在Range上使用切片表示法,但目前,最简单和最有效的方法(只有一次读写操作)可能是读取整个范围,在 Python 一侧进行操作并将整个范围写回:

values = xw.Range(1, 'Named range').value
values[1][1] = 'yes'
xw.Range(1, 'Named range').value = values

或者,根据您的情况,这也可能是一种可能性:

first_col = xw.Range(1, 'Named range').column
first_row = xw.Range(1, 'Named range').row
xw.Range(1, (first_col + 1, first_row + 1)).value = 'yes'