Python 与 Gnumeric 共舞
2008-09-30 13:08:46 来源:WEB开发网牛刀小试
根据上面的分析,我们看到用Python编写Gnumeric函数,需要三个步骤:
1. 创建Python函数源文件,如py_func.py。
2. 根据创建的函数构建函数原型字典,如test_functions。
3. 创建plugin.xml配置文件,配置文件名、函数分类、名字、原型字典等相关信息。
为了演示具体的Gnumeric中Python函数创建的过程,笔者编写了一个根据自动标记成绩等级的小函数,由plugin.xml和exam.py两个文件构成。
首先创建脚本文件exam.py,整个文件只有mark和cstr两个函数:mark函数的参数和返回值都是字符串,功能是根据其大小返回成绩的等级;cstr用来把字符串转换成utf-8编码,使Gnumeric能显示中文 (2) 。mark函数中的注释是提供给Gnumeric的函数信息,读者开发时只需要按着模板简单的修改就可以了。
代码 4 exam.py文件
# -*- coding: GB2312 -*-
def mark(score):
'@FUNCTION=MARK_SCOREn'
'@SYNTAX=mark_score(score)n'
'@DESCRIPTION= determine the level for a scoren'
'@EXAMPLES= To determine a score in A1: n'
' mark_score(a1)n'
'@SEEALSO='
level='N/A'
if score < 0:
level = cstr('非法分数')
elif score < 60:
level = cstr('未及格')
elif score < 80:
level = cstr('及格')
elif score < 90:
level = cstr('良')
elif score <= 100:
level = cstr('优秀')
else:
level = cstr('非法分数')
return level
def cstr(str):
""" translate a chinese string into utf-8 string for GTK+
"""
return unicode(str,'gbk').encode('utf8')
exam_functions = {
'mark_score' : ('f','score',mark)
}
更多精彩
赞助商链接