Python XlsxWriter – 定义的名称

Python XlsxWriter – 定义的名称

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

在下面的代码片段中,我们有一个由数字组成的单元格区域。这个区域已经被赋予了一个名字,即mark。

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

如果名字被分配给一个单元格区域, define_name() 方法的第二个参数是一个 字符串 ,其中包含工作表的名称,后面是” “符号,然后是使用绝对寻址方案的单元格区域。在本例中,sheet1中的 A1:E1 单元格区域被命名为 mark。

这个名称可以在任何公式中使用。例如,我们计算以 marks 为名的单元格区域的数字之和。

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

我们也可以在 write_formula() 方法中使用命名的单元格。在下面的代码中,这个方法被用来计算 利率为defined_name ** 金额的利息 **。

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

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)}')

例子

下面是使用 define_name( )方法的完整代码。

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!A1:E1')
ws.write('F1', '=sum(marks)')

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

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()

输出

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

Python XlsxWriter - 定义的名称

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程