Python结合WPS多维表实现在线批量查词功能

 更新时间:2025年12月22日 09:17:03   作者:PythonFun  
Python是当前人工智能时代最受欢迎的编程语言,越来越多的应用程序把其整合到自身的功能当中,WPS多维表就是最早接入Python代码的应用平台,下面我们就来看看如何在多维表中应用Python代码实现批量单词查询吧

一、引言

Python是当前人工智能时代最受欢迎的编程语言,越来越多的应用程序把其整合到自身的功能当中,WPS多维表就是最早接入Python代码的应用平台。当Excel365还在为Python的功能收费时,我东大国产文字处理工具WPS已经将这一功能免费开放给全国用户。本来多维表已经是一场在线办公领域的利器了,Python代码更是为其添加了翅膀。下面以单词查询项目为例,简要介绍如何在多维表中应用Python代码,实现批量单词查询的。

二、实现方法

1.初始化配置

打开http://docs.wps.cn,创建多维表,设置单词、音标、词义三个字段。为了明确提交人,可以在字段管理那里添加一个提交人,这样提交查询任务者就会显示出来,如下图所示:

2. 配置PY代码

点击顶部的【脚本】——【Py代码】把下面的代码放入其中

import requests, re, time, json

rec_ids = Context['argv']['rec_id']  # 改为复数,获取所有记录ID
src_texts = Context['argv']['src_text']  # 改为复数,获取所有文本
url = 'http://api.niutrans.com/NiuTransServer/translation'
apikey = "c4e10095a8c951a6443789345c498e9a" #不保证能用,可以自己申请免费的

def is_english_strict(text):
    if not text:
        return False
    english_chars = re.findall(r'[a-zA-Z]', text)
    if ' ' in english_chars:
        return False
    else:
        return len(english_chars) / len(text) > 0.7

def niu_trans(sentence, src_lan="auto", tgt_lan="zh"):
    data = {"from": src_lan, "to": tgt_lan, "apikey": apikey, "src_text": sentence}
    res = requests.post(url, data=data)
    res_dict = json.loads(res.text)
    if "tgt_text" in res_dict:
        result = res_dict['tgt_text']
    else:
        result = res.text
    return result

def translate(word):
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"}
    url = r"https://dict.cn/search?q=" + word
    try:
        resp = requests.get(url, headers=headers, timeout=30).text
        phonetic = re.search('<bdo lang="EN-US">(.*?)</bdo>', resp)
        pattern = re.compile(r'<ul class="dict-basic-ul">(.*?)</ul>', re.DOTALL)
        matches = pattern.findall(resp)
        mean = []
        if matches:
            content = matches[0]
            meanings = re.findall(r'<li>.*?<span>(.*?)</span>.*?<strong>(.*?)</strong>.*?</li>', content, re.DOTALL)
            for part_of_speech, meaning in meanings:
                mean.append(f"{part_of_speech}{meaning}")
            word_info = {
                "单词": word,
                "音标": phonetic.group(1) if phonetic else "",
                "词义": "".join(mean) if mean else ""
            }
            return word_info
    except Exception as e:
        return f"翻译失败: {str(e)}"

# 循环处理每一个记录
for i in range(len(rec_ids)):
    rec_id = rec_ids[i]
    src_text = src_texts[i]
    
    try:
        df = dbt(sheet_name='数据表')
        if is_english_strict(src_text):
            info = translate(src_text)
            # 构建数据记录 - 使用字段名作为键
            record_data = {
                "_rid": rec_id,
                "音标": info["音标"] if isinstance(info, dict) else "",
                "词义": info["词义"] if isinstance(info, dict) else info
            }
        else:
            # 构建数据记录 - 使用字段名作为键
            record_data = {
                "_rid": rec_id,
                "词义": niu_trans(src_text)
            }

        # 更新当前记录
        update_dbt(data=record_data, sheet_name='数据表')
        time.sleep(0.6)  # 每个记录处理完后等待0.6秒
        
    except Exception as e:
        print(f"处理记录 {rec_id} 失败: {str(e)}")

print(f"✅ 批量处理完成,共处理了 {len(rec_ids)} 条记录")

并修改其中apikey为你自己申请的小牛机器翻译API,如下图所示:

3. 配置自动化流程

点击自动化流程,新建一个自动化的流程:

首先设置一个触发条件,也就是新增或修改记录是触发。

其次,在第二步中设置执行PY代码,在【选择将要执行的脚本文件】处设置要执行的PY代码,这个代码就是之前在脚本里设置好的代码。

接着要设置一下脚本入参,有两个参数,一个是rec_id,是记录的ID,另一个传入PY代码的是是单词列的文本。

三、使用方法

1. 输入查单词

进入数据表,在单词列输入单词:

也可以新建一个表单视图,共享给别人后,可以多人一起输入生词,一起协作。

2.导入查单词

在数据表中,导入WPS表格,至少有一列,列名为单词。再点击数据表旁边的三个点,选择【追加导入数据】,导入后,系统会自动查询单词

3. 导出查询结果

点击表格视图中右侧三个点,再点导出数据,就可以把查询的结果导出到本地Excel表中。

四、小结

在这个项目中,我们采用WPS多维表+Python爬虫,通过调用小牛机器翻译API或爬取网页内容的方法,并回填到多维表页面上,实现了一个在线批量查字典的功能,不仅可以查单词,还可以查询短语。如果是短语就直接调用小牛机器翻译进行翻译,如果是非英文的语言,直接用小牛机器翻译自动识别,然后翻译成中文。

这个小项目可以用于课堂学生互动,让学生录入感觉较难的生词,WPS多维表自动计算它的频次,根据频次来讲解学生认为重要且较难的单词。同时也可以作为个人记录生词的小工具,在后面添加日期后,字段设置不能重复录入,用户可以手机或电脑记录每天遇到的生词,而且数据本地和远程共享,非常方便。

到此这篇关于Python结合WPS多维表实现在线批量查词功能的文章就介绍到这了,更多相关Python查词内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中os.path.join函数的用法示例详解

    Python中os.path.join函数的用法示例详解

    这篇文章主要给大家介绍了关于Python中os.path.join函数用法的相关资料,os.path.join函数是Python标准库中的一个函数,用于将多个路径组合成一个有效的路径,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Python基于正则表达式实现检查文件内容的方法【文件检索】

    Python基于正则表达式实现检查文件内容的方法【文件检索】

    这篇文章主要介绍了Python基于正则表达式实现检查文件内容的方法,可实现针对文件中import强制依赖的文件关系检索,涉及Python文件目录的遍历及正则匹配相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • 详解python--模拟轮盘抽奖游戏

    详解python--模拟轮盘抽奖游戏

    这篇文章主要介绍了python模拟轮盘抽奖游戏,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 解决Keras中CNN输入维度报错问题

    解决Keras中CNN输入维度报错问题

    这篇文章主要介绍了解决Keras中CNN输入维度报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Flask请求钩子与上下文及异常处理分项精解

    Flask请求钩子与上下文及异常处理分项精解

    这篇文章主要介绍了Flask请求钩子与上下文及异常处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • Python使用Scrapy抓取和解析网页数据的方法

    Python使用Scrapy抓取和解析网页数据的方法

    很多 Python 初学者学完基础语法后,都会遇到一个很实际的问题:怎么把网页里的数据稳定地提取下来,变成自己能处理的结构化数据,Scrapy 是 Python 生态里非常经典的爬虫框架,本文给大家介绍了Python使用Scrapy抓取和解析网页数据的方法,需要的朋友可以参考下
    2026-05-05
  • Python正确调用 jar 包加密得到加密值的操作方法

    Python正确调用 jar 包加密得到加密值的操作方法

    这篇文章主要介绍了Python 正确调用 jar 包加密得到加密值的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Django中的DateTimeField和DateField实现

    Django中的DateTimeField和DateField实现

    这篇文章主要介绍了Django中的DateTimeField和DateField实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Django 博客实现简单的全文搜索的示例代码

    Django 博客实现简单的全文搜索的示例代码

    这篇文章主要介绍了Django 博客实现简单的全文搜索的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python基础语法:变量、常量与表达式实战案例

    Python基础语法:变量、常量与表达式实战案例

    这段文章详细介绍了Python编程中的三大基础概念:变量、常量与表达式,文章通过实例讲解了变量的定义、命名规则及使用方法,强调了常量的命名规范和表达式的的基本组成,感兴趣的朋友一起看看吧
    2026-06-06

最新评论