我使用EFunction jupyter工具,利用Python开发了一个my_pinyin自定义函数,利用这个函数,可以获得汉字的汉语拼音形式。
自定义函数用法完整公式为:=EFTEXTJOIN(” “,,my_pinyin(B23))。效果如下图所示。
Python自定义函数完整代码为:
%%writefile filename.py # 可自定义文件名,%%writefile filename.py 必须为cell第一行,才可执行 import pythoncom as pc import win32com.client as cl from win32com.client import Dispatch from pypinyin import pinyin class PythonComTestObject: # 工程类名称,可定义成自己的工程类名 _reg_clsid_ = '{BB58C07E-B9AD-4BC7-BB8C-01D2FF8FD4E9}' #可替换成你自己的id码 _reg_clsctx_ = pc.CLSCTX_LOCAL_SERVER _reg_progid_ = "PythonComTestObject" # 和类名保持一致 _reg_desc_ = "我的一个 com 工程" # 自定义函数列表 _public_methods_ = ['my_sum','my_pinyin'] # 统计两个数相加 def my_sum(self, x, y): # 函数返回值 return x + y def my_pinyin(self,x): # 函数返回值 return pinyin(x) if __name__ == '__main__': import win32com.server.register win32com.server.register.UseCommandLine(PythonComTestObject) # 调用工程类名称,根据实际调整 # 执行本cell 代码,生成filename.py 文件 # 在新的cell之中执行 %run filename.py print('执行以下代码:%ef_vba PythonComTestObject ')
在jupyter notebook内,执行以上代码。执行完成后。再执行以下代码。
如果提示成功,就可以使用my_pinyin自定义函数了。自定义函数开发好后,就可以在Excel内使用自定义函数了。
需要注意如果想在这个工作簿内直接使用自定义函数,建议将工作簿保存为xlsm格式文件。下次打开这个工作簿后,就可以直接使用自定义函数了。