元氏县城有做网站广告的吗,wordpress自动加标签,嘉兴外贸网站建设,广西百色公司注册只需简单地编写小段py脚本#xff0c;就可以借助Excel催化剂的平台作用#xff0c;将写出的py脚本#xff0c;嫁接到Excel的环境上使用#xff0c;在Excel的广阔用户群体上带来更多的产出价值。也大大增加了将自己的python技能输出到普通用户可享用的层面。按照本文的规范就可以借助Excel催化剂的平台作用将写出的py脚本嫁接到Excel的环境上使用在Excel的广阔用户群体上带来更多的产出价值。也大大增加了将自己的python技能输出到普通用户可享用的层面。按照本文的规范可以自行在本地Excel催化剂环境上扩展python功能若觉得自己所写的python脚本有足够的共性有推广价值可以加入Excel催化剂的python开发者社群一起做大此领域。以下的文字版内容可能在后续的代码变动下会略有更改大体上不变要获取最新的信息可私信笔者加入Excel催化剂组建的python开发者社群一起深入交流。同步也录制了视频教程地址为https://www.bilibili.com/video/av87125312/可在【阅读原文】上跳转到B站观看。一、前端用户提供两个区域表选择左为参数区域右边为数据区域。二、用户选择后的结果催化剂将生成一个字典数据结构给python调用。下图为用户的选择方式用窗体来辅助选择其中描述的字段如果取自数据表描述部分的约定是写帮忙文档时告诉用户这些日期、数量的参数的特征*代表数据区域取数是多的列表关系这些都不需要python来处理我插件层面处理好。可能用户的参数匹配和我们py程序的不一致缺少一些必填项需要报错返回提示用户多一些无用项如参数名称这个是标题行可以忽略它一些选填项用户没有输入py程序要自己用默认值去补充或处理选填为空的其他逻辑。三、收到插件传过来的参数按py的程序需求对传入的参数再加工处理最终使用Return返回数据给插件。在python脚本中约定的几点规范需要遵守。插件调用的python方法为run方法名run方法名只有一个参数是kwargs参数名不能修改。参数返回的数据类型是字典结构已在common公共模块中写了方法def return_result(restype,contents):return {type:restype,contents:contents}此方法需传入两个参数第1个参数是返回数据类型字符为以下四种。rng对应的contents内容为用pd的to_json(orientsplit)方法返回最终字符串结果msg对应的contents内容为返回一段给用户提醒的文本即可最终会以弹窗的信息让用户阅读长内容最好分多行表示。html对应的contents内容为返回生成的html文件的全路径img对应的contents内容为返回生成的图片文件的全路径具体使用可参照现有的示例文件安装好插件在配置文件里可找到。common.py的文件大家有什么好的通用方法可以抽象出来不用重复输入当然不是必须可以不引用里面方法写自己的py脚本。传入的kwargs参数是字典结构比较好的数据处理方式是直接转成dataFrame数据类型。四、注意事项用户输入为空时传入的kwargs参数变化如下图所示用户界面输入为空对接收到的kwargs参数影响。需要在插件上调试时可以加上调试方法体因插件开启的python进展会一直以ipython的交互方式存在如果py脚本文件有修改此时会有缓存作用不会再次调用更改后的py文件内容。若需要修改后的py文件立即生效插件再次调用时可识别出来可在py文件中加入以下标识测试好后再注释删除它。def _debug_():passcommon公共模块的调用对应的import 位置是python文件夹的位置而不是和py脚本文件同目录py脚本文件夹和文件名的规范因插件最终调用py文件时将文件夹和文件名当作模块来调用最终找到要调用的方法所以文件夹、文件名需遵循变量的命名规范不能以数字开头不能有【】之类的特殊符号等。可以在自己生成的结果数据中插入一些个人宣传信息如在html文件中插入一些文字和二维码等我在common模块上写了个方法大家可以自己在py脚本上硬编码的方式写上也可以。def replace_html_withAD(html_path,title,ad_file_path):if os.path.exists(ad_file_path):with open(ad_file_path,r,encodingutf-8) as ad:ad_contents ad.read()with open(html_path, r, encodingutf-8) as src_file:html_contents src_file.read()html_contents html_contents.replace(https://assets.pyecharts.org/assets/, )html_contents html_contents.replace(titleAwesome-pyecharts/title, title{0}/title.format(title))html_contents html_contents.replace(/body, ad_contents/body)with open(html_path, w, encodingutf-8) as dst_file: dst_file.write(html_contents)如果需要直接或间接调用matplotlib库来绘图的脚本请建一个文件夹【单次执行】存放因为插件开启python后以ipython交互式的方式调用只在首次调用时加载python会慢一些后续再调调用时会很快。但因为matplotlib作图的原理在交互模式下会弹出窗口使程序一直会卡住不动后续执行时前端插件界面就会卡死没反应请务必测试好若存在调用matplotlib而让插件前端卡死的记得需要放到【单次执行】文件夹里插件识别这个关键字执行完这个脚本就退出python程序再执行下一个脚本任务时可以正常。类似pandas_profiling这样的包可能底层作图也是matplotlib同样会有问题seaborn就更不用说了。传入py脚本中的kwargs参数小心处理数据类型在Excel界面上的数据类型经过.NET程序处理去到python里使用时可能会有差异特别是数字、日期这类的信息。可以使用插件的界面操作在py文件中观察传入的数据情况如下图py文件中记得使用debug方法标识让py文件修改后插件可以再次加载测试无误后可以注释或删除它。在主方法run的任意位置都可以用返回【msg】弹窗信息的方法局部测试脚本的运行情况。如下图直接测试kwargs参数的内容记得先转成字符串类型才让其输出。如下图中插件会以弹窗的形式响应输出结果发现在参数区域里的数字类型传到py里后变成字符串格式而数据区域中的不受影响同时日期格式变为ISO的字符串日期格式。才上数据类型对不上的原因已找到bug进行修复但一个好的习惯是在测试脚本过程中最好也多看下传入的kwargs参数的结构提高代码出错排查效率。强制退出python进程在使用插件进行最后测试过程中特别是之前测试已经没问题将debug方法注释后在插件调用过程中发现有问题之前的作法只能是重新关闭Excel程序再打开Excel很麻烦。现在补充一个小功能可以强制退出python进程让py脚本文件的缓存记忆可以清空再次启动某py脚本时将重新先启动python进程再读取py文件保证新修改的内容可生效而又不需要重启excel。最佳的测试方式是写上debug方法体每次重启python进程来测试将失去了交互式python的优点等待python启动会较为漫长。