Python XlsxWriter 定义的名称


在 Excel 中,可以通过用户自定义的名称来识别一个单元格、一个公式或一个单元格区域,它可以作为一个变量用来使公式的定义更容易理解。这可以使用 定义名称() Workbook 类的方法。

在下面的代码片段中,我们有一系列由数字组成的单元格。该范围已被命名为标记。

data=['marks',50,60,70, 'Total']
ws.write_row('A1', data)
wb.define_name('marks', '=Sheet1!$A$1:$E$1')

如果名称被分配给一个单元格区域,则第二个参数 定义名称() 方法是一个 string 工作表名称后跟“ ! " 符号,然后是使用绝对寻址方案的单元格范围。在这种情况下,范围 A1:E1 在 sheet1 中被命名为 marks .

此名称可用于任何公式。例如,我们计算名称标识的范围内的数字之和 marks .

ws.write('F1', '=sum(marks)')

我们也可以在 写公式() 方法。在以下代码中,此方法用于计算利息 rate 是一个定义的名称 .

ws.write('B5', 10)
wb.define_name('rate', '=sheet1!$B$5')

ws.write_row('A5', ['Rate', 10])

data=['Amount',1000, 2000, 3000]
ws.write_column('A6', data)
ws.write('B6', 'Interest')
for row in range(6,9):
    ws.write_formula(row, 1, '= rate*$A{}/100'.format(row+1))

我们也可以使用 write_array_formula() 方法而不是上面代码中的循环:

ws.write_array_formula('D7:D9' , '{=rate/100*(A7:A9)}')

例子


完整的代码使用 定义名称() 方法如下:

import xlsxwriter

wb = xlsxwriter.Workbook('ex2.xlsx')
ws = wb.add_worksheet()

data = ['marks',50,60,70, 'Total']
ws.write_row('A1', data)
wb.define_name('marks', '=Sheet1!$A$1:$E$1')
ws.write('F1', '=sum(marks)')

ws.write('B5', 10)
wb.define_name('rate', '=sheet1!$B$5')

ws.write_row('A5', ['Rate', 10])

data=['Amount',1000, 2000, 3000]
ws.write_column('A6', data)
ws.write('B6', 'Interest')

for row in range(6,9):
    ws.write_formula(row, 1, '= rate*$A{}/100'.format(row+1))
   
wb.close()

输出


运行上述程序并打开 ex2.xlsx 用 Excel。

Ex2 Xlsx