鱼C论坛

 找回密码
 立即注册
查看: 1659|回复: 5

求助20240130

[复制链接]
发表于 2024-1-30 22:17:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在的问题是:
1、定义了函数已经能够实现按sheet名分别储存行、列排除规则,如何实现 在遇到同名sheet时自动调用对应的行、列排除规则?
    def exclude_rows_and_cols():
     。。。
    return exclude_rules

2、定义了函数已经能够实现按sheet名分别储存行、列验证规则,如何实现 在遇到同名sheet时自动调用对应的行、列验证规则?

     def record_validation_rules(filename):

       。。。。。。

     return sheet_validations

回复请注意python格式。


评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
一点沙 + 5 + 5 + 3 VIP被扣啦?

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-1-30 22:18:42 | 显示全部楼层
问题1可以通过将排除规则储存在字典中,字典的键是sheet名,值是排除规则的函数。然后在遍历每个sheet时,根据sheet名从字典中获取对应的排除规则,并调用该规则函数。下面是实现的代码:

  1. def exclude_rows_and_cols():
  2.     exclude_rules = {
  3.         "Sheet1": exclude_rule_for_sheet1,
  4.         "Sheet2": exclude_rule_for_sheet2,
  5.         "Sheet3": exclude_rule_for_sheet3
  6.     }
  7.    
  8.     # 遍历每个sheet
  9.     for sheet in workbook.sheets:
  10.         sheet_name = sheet.name
  11.         
  12.         # 检查是否有对应的排除规则
  13.         if sheet_name in exclude_rules:
  14.             exclude_rule = exclude_rules[sheet_name]
  15.             
  16.             # 调用对应的排除规则函数
  17.             exclude_rule(sheet)
  18.    
  19.     return exclude_rules
复制代码


问题2同理,可以使用字典来存储验证规则函数,根据sheet名调用对应的验证规则函数。下面是实现的代码:

  1. def record_validation_rules(filename):
  2.     sheet_validations = {
  3.         "Sheet1": validation_rule_for_sheet1,
  4.         "Sheet2": validation_rule_for_sheet2,
  5.         "Sheet3": validation_rule_for_sheet3
  6.     }
  7.    
  8.     # 打开Excel文件
  9.     workbook = openpyxl.load_workbook(filename)
  10.    
  11.     # 遍历每个sheet
  12.     for sheet in workbook.sheets:
  13.         sheet_name = sheet.name
  14.         
  15.         # 检查是否有对应的验证规则
  16.         if sheet_name in sheet_validations:
  17.             validation_rule = sheet_validations[sheet_name]
  18.             
  19.             # 调用对应的验证规则函数
  20.             validation_rule(sheet)
  21.    
  22.     return sheet_validations
复制代码


在上面的代码中,`exclude_rule_for_sheet1`、`exclude_rule_for_sheet2`、`exclude_rule_for_sheet3`等表示排除规则的函数,`validation_rule_for_sheet1`、`validation_rule_for_sheet2`、`validation_rule_for_sheet3`等表示验证规则的函数。您需要根据实际情况定义这些函数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-30 22:29:15 | 显示全部楼层
FishC 发表于 2024-1-30 22:18
问题1可以通过将排除规则储存在字典中,字典的键是sheet名,值是排除规则的函数。然后在遍历每个sheet时, ...

谢谢  我明天消化一下再来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-30 22:29:24 | 显示全部楼层
清風 发表于 2024-01-30 22:29
谢谢  我明天消化一下再来。


不客气!如果您有任何进一步的问题,请随时向我提问。祝您消化得愉快,明天再见!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-31 08:42:57 | 显示全部楼层
是啊  清零了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-31 08:43:14 | 显示全部楼层


哈哈,有时候确实需要给大脑休息一下,让信息得到更好的消化和吸收。明天再来继续学习,相信您会更加理解和掌握编程知识。祝您明天过得愉快!如果有需要,随时向我提问。加油!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 16:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表