Python操作Execl实现三级联动下拉

Python操作Execl实现三级联动下拉功,去翻阅了官方文档,整理出一个实现联动下拉的demo.
官网文档:【openpyxl官方文档】

一、操作流程

1、定义xlsx文件名称

# -*-coding: utf-8 -*-
import xlsxwriter
# 定义xlsx文件名称
workbook = xlsxwriter.Workbook('defined_test.xlsx')

2、定义sheet (sheet2用于存储级联下拉数据)

worksheet1 = workbook.add_worksheet()
worksheet2 = workbook.add_worksheet()
# sheet2设置成隐藏
worksheet2.hide()

3、定义sheet2的数据

data = ('RootLevel', '工业', '非工业')
data1 = ('工业_test', '工业1', '工业2', '工业3')
data2 = ('工业_工业1_label_name', '工业11', '工业12', '工业13')
data3 = ('工业_工业2_test', '工业21', '工业22', '工业23')
data4 = ('非工业_test', '非工业1', '非工业2', '非工业3')
data5 = ('非工业_非工业1_test', '非工业11', '非工业12', '非工业13')

4、sheet2 写入数据

worksheet2.write_row('A1', data)
worksheet2.write_row('A2', data1)
worksheet2.write_row('A3', data2)
worksheet2.write_row('A4', data3)
worksheet2.write_row('A5', data4)
worksheet2.write_row('A6', data4)

5、定义的名称和命名范围

workbook.define_name('Sheet1!工业_test', '=Sheet2!$B$2:$D$2')
workbook.define_name('Sheet1!工业_工业1_test', '=Sheet2!$B$3:$D$3')
workbook.define_name('Sheet1!工业_工业2_test', '=Sheet2!$B$4:$D$4')
workbook.define_name('Sheet1!非工业_test', '=Sheet2!$B$5:$D$5')
workbook.define_name('Sheet1!非工业_非工业1_test', '=Sheet2!$B$6:$D$6')

6、sheet1中前 100行 增加下拉数据

# 100行 增加下拉数据
for v in range(1, 100):
    v = str(v)
    worksheet1.data_validation("A"+v, {'validate': 'list',
                                      'value': '=Sheet2!$B$1:$C$1'})

    worksheet1.data_validation("B"+v, {'validate': 'list',
                                      'source': '=INDIRECT(CONCATENATE($A'+v+',"__test"))'})

    worksheet1.data_validation("C"+v, {'validate': 'list',
                                         'source': '=INDIRECT(CONCATENATE($A'+v+',"__",$B'+v+',"__test"))'})
    # D列增加数据校验设置
    worksheet1.data_validation('D'+v, {'validate': 'integer',
                                  'criteria': 'between',
                                  'minimum': 1,
                                  'maximum': 100,
                                  'input_title': 'Enter an integer:',
                                  'input_message': 'between 1 and 100'})

7、关闭文件操作

workbook.close()

二、样例展示

1、下拉级联展示

在这里插入图片描述

1、数字验证校验展示

在这里插入图片描述

如果您对我的文章感兴趣,欢迎关注点赞收藏,如果您有疑惑或发现文中有不对的地方,还请不吝赐教,非常感谢!!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python_宏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值