- Python XlsxWriter 教程
- Python XlsxWriter - 首页
- Python XlsxWriter - 概述
- Python XlsxWriter - 环境设置
- Python XlsxWriter - Hello World
- Python XlsxWriter - 重要类
- Python XlsxWriter - 单元格表示法和范围
- Python XlsxWriter - 定义名称
- Python XlsxWriter - 公式和函数
- Python XlsxWriter - 日期和时间
- Python XlsxWriter - 表格
- Python XlsxWriter - 应用筛选器
- Python XlsxWriter - 字体和颜色
- Python XlsxWriter - 数字格式
- Python XlsxWriter - 边框
- Python XlsxWriter - 超链接
- Python XlsxWriter - 条件格式
- Python XlsxWriter - 添加图表
- Python XlsxWriter - 图表格式
- Python XlsxWriter - 图表图例
- Python XlsxWriter - 条形图
- Python XlsxWriter - 折线图
- Python XlsxWriter - 饼图
- Python XlsxWriter - 迷你图
- Python XlsxWriter - 数据验证
- Python XlsxWriter - 大纲和分组
- Python XlsxWriter - 冻结和拆分窗格
- Python XlsxWriter - 隐藏/保护工作表
- Python XlsxWriter - 文本框
- Python XlsxWriter - 插入图片
- Python XlsxWriter - 页面设置
- Python XlsxWriter - 页眉和页脚
- Python XlsxWriter - 单元格批注
- Python XlsxWriter - 使用 Pandas
- Python XlsxWriter - VBA宏
- Python XlsxWriter 有用资源
- Python XlsxWriter - 快速指南
- Python XlsxWriter - 有用资源
- Python XlsxWriter - 讨论
Python XlsxWriter - 定义名称
在 Excel 中,可以使用用户定义的名称来标识单元格、公式或单元格范围,该名称可用作变量,使公式定义易于理解。这可以使用 Workbook 类的 define_name() 方法来实现。
在下面的代码片段中,我们有一系列包含数字的单元格。此范围已命名为 marks。
data=['marks',50,60,70, 'Total']
ws.write_row('A1', data)
wb.define_name('marks', '=Sheet1!$A$1:$E$1')
如果名称分配给单元格范围,则 define_name() 方法的第二个参数是一个字符串,其中包含工作表名称,后跟“!”符号,然后使用绝对寻址方案的单元格范围。在本例中,sheet1 中的范围 A1:E1 被命名为 marks。
此名称可用于任何公式。例如,我们计算由名称 marks 标识的范围内的数字之和。
ws.write('F1', '=sum(marks)')
我们还可以在 write_formula() 方法中使用命名的单元格。在下面的代码中,此方法用于计算金额的利息,其中 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)}')
示例
使用 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!$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()
输出
运行上述程序,并使用 Excel 打开 ex2.xlsx。
广告