Python結(jié)合WPS多維表實(shí)現(xiàn)在線批量查詞功能
一、引言
Python是當(dāng)前人工智能時(shí)代最受歡迎的編程語言,越來越多的應(yīng)用程序把其整合到自身的功能當(dāng)中,WPS多維表就是最早接入Python代碼的應(yīng)用平臺(tái)。當(dāng)Excel365還在為Python的功能收費(fèi)時(shí),我東大國產(chǎn)文字處理工具WPS已經(jīng)將這一功能免費(fèi)開放給全國用戶。本來多維表已經(jīng)是一場(chǎng)在線辦公領(lǐng)域的利器了,Python代碼更是為其添加了翅膀。下面以單詞查詢項(xiàng)目為例,簡(jiǎn)要介紹如何在多維表中應(yīng)用Python代碼,實(shí)現(xiàn)批量單詞查詢的。
二、實(shí)現(xiàn)方法
1.初始化配置
打開http://docs.wps.cn,創(chuàng)建多維表,設(shè)置單詞、音標(biāo)、詞義三個(gè)字段。為了明確提交人,可以在字段管理那里添加一個(gè)提交人,這樣提交查詢?nèi)蝿?wù)者就會(huì)顯示出來,如下圖所示:

2. 配置PY代碼
點(diǎn)擊頂部的【腳本】——【Py代碼】把下面的代碼放入其中
import requests, re, time, json
rec_ids = Context['argv']['rec_id'] # 改為復(fù)數(shù),獲取所有記錄ID
src_texts = Context['argv']['src_text'] # 改為復(fù)數(shù),獲取所有文本
url = 'http://api.niutrans.com/NiuTransServer/translation'
apikey = "c4e10095a8c951a6443789345c498e9a" #不保證能用,可以自己申請(qǐng)免費(fèi)的
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,
"音標(biāo)": phonetic.group(1) if phonetic else "",
"詞義": "".join(mean) if mean else ""
}
return word_info
except Exception as e:
return f"翻譯失敗: {str(e)}"
# 循環(huán)處理每一個(gè)記錄
for i in range(len(rec_ids)):
rec_id = rec_ids[i]
src_text = src_texts[i]
try:
df = dbt(sheet_name='數(shù)據(jù)表')
if is_english_strict(src_text):
info = translate(src_text)
# 構(gòu)建數(shù)據(jù)記錄 - 使用字段名作為鍵
record_data = {
"_rid": rec_id,
"音標(biāo)": info["音標(biāo)"] if isinstance(info, dict) else "",
"詞義": info["詞義"] if isinstance(info, dict) else info
}
else:
# 構(gòu)建數(shù)據(jù)記錄 - 使用字段名作為鍵
record_data = {
"_rid": rec_id,
"詞義": niu_trans(src_text)
}
# 更新當(dāng)前記錄
update_dbt(data=record_data, sheet_name='數(shù)據(jù)表')
time.sleep(0.6) # 每個(gè)記錄處理完后等待0.6秒
except Exception as e:
print(f"處理記錄 {rec_id} 失敗: {str(e)}")
print(f"? 批量處理完成,共處理了 {len(rec_ids)} 條記錄")并修改其中apikey為你自己申請(qǐng)的小牛機(jī)器翻譯API,如下圖所示:

3. 配置自動(dòng)化流程
點(diǎn)擊自動(dòng)化流程,新建一個(gè)自動(dòng)化的流程:

首先設(shè)置一個(gè)觸發(fā)條件,也就是新增或修改記錄是觸發(fā)。

其次,在第二步中設(shè)置執(zhí)行PY代碼,在【選擇將要執(zhí)行的腳本文件】處設(shè)置要執(zhí)行的PY代碼,這個(gè)代碼就是之前在腳本里設(shè)置好的代碼。

接著要設(shè)置一下腳本入?yún)ⅲ袃蓚€(gè)參數(shù),一個(gè)是rec_id,是記錄的ID,另一個(gè)傳入PY代碼的是是單詞列的文本。
三、使用方法
1. 輸入查單詞
進(jìn)入數(shù)據(jù)表,在單詞列輸入單詞:

也可以新建一個(gè)表單視圖,共享給別人后,可以多人一起輸入生詞,一起協(xié)作。

2.導(dǎo)入查單詞
在數(shù)據(jù)表中,導(dǎo)入WPS表格,至少有一列,列名為單詞。再點(diǎn)擊數(shù)據(jù)表旁邊的三個(gè)點(diǎn),選擇【追加導(dǎo)入數(shù)據(jù)】,導(dǎo)入后,系統(tǒng)會(huì)自動(dòng)查詢單詞

3. 導(dǎo)出查詢結(jié)果
點(diǎn)擊表格視圖中右側(cè)三個(gè)點(diǎn),再點(diǎn)導(dǎo)出數(shù)據(jù),就可以把查詢的結(jié)果導(dǎo)出到本地Excel表中。

四、小結(jié)
在這個(gè)項(xiàng)目中,我們采用WPS多維表+Python爬蟲,通過調(diào)用小牛機(jī)器翻譯API或爬取網(wǎng)頁內(nèi)容的方法,并回填到多維表頁面上,實(shí)現(xiàn)了一個(gè)在線批量查字典的功能,不僅可以查單詞,還可以查詢短語。如果是短語就直接調(diào)用小牛機(jī)器翻譯進(jìn)行翻譯,如果是非英文的語言,直接用小牛機(jī)器翻譯自動(dòng)識(shí)別,然后翻譯成中文。
這個(gè)小項(xiàng)目可以用于課堂學(xué)生互動(dòng),讓學(xué)生錄入感覺較難的生詞,WPS多維表自動(dòng)計(jì)算它的頻次,根據(jù)頻次來講解學(xué)生認(rèn)為重要且較難的單詞。同時(shí)也可以作為個(gè)人記錄生詞的小工具,在后面添加日期后,字段設(shè)置不能重復(fù)錄入,用戶可以手機(jī)或電腦記錄每天遇到的生詞,而且數(shù)據(jù)本地和遠(yuǎn)程共享,非常方便。
到此這篇關(guān)于Python結(jié)合WPS多維表實(shí)現(xiàn)在線批量查詞功能的文章就介紹到這了,更多相關(guān)Python查詞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中os.path.join函數(shù)的用法示例詳解
這篇文章主要給大家介紹了關(guān)于Python中os.path.join函數(shù)用法的相關(guān)資料,os.path.join函數(shù)是Python標(biāo)準(zhǔn)庫中的一個(gè)函數(shù),用于將多個(gè)路徑組合成一個(gè)有效的路徑,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
Python基于正則表達(dá)式實(shí)現(xiàn)檢查文件內(nèi)容的方法【文件檢索】
這篇文章主要介紹了Python基于正則表達(dá)式實(shí)現(xiàn)檢查文件內(nèi)容的方法,可實(shí)現(xiàn)針對(duì)文件中import強(qiáng)制依賴的文件關(guān)系檢索,涉及Python文件目錄的遍歷及正則匹配相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Flask請(qǐng)求鉤子與上下文及異常處理分項(xiàng)精解
這篇文章主要介紹了Flask請(qǐng)求鉤子與上下文及異常處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10
Python使用Scrapy抓取和解析網(wǎng)頁數(shù)據(jù)的方法
很多 Python 初學(xué)者學(xué)完基礎(chǔ)語法后,都會(huì)遇到一個(gè)很實(shí)際的問題:怎么把網(wǎng)頁里的數(shù)據(jù)穩(wěn)定地提取下來,變成自己能處理的結(jié)構(gòu)化數(shù)據(jù),Scrapy 是 Python 生態(tài)里非常經(jīng)典的爬蟲框架,本文給大家介紹了Python使用Scrapy抓取和解析網(wǎng)頁數(shù)據(jù)的方法,需要的朋友可以參考下2026-05-05
Python正確調(diào)用 jar 包加密得到加密值的操作方法
這篇文章主要介紹了Python 正確調(diào)用 jar 包加密得到加密值的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
Django中的DateTimeField和DateField實(shí)現(xiàn)
這篇文章主要介紹了Django中的DateTimeField和DateField實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Django 博客實(shí)現(xiàn)簡(jiǎn)單的全文搜索的示例代碼
這篇文章主要介紹了Django 博客實(shí)現(xiàn)簡(jiǎn)單的全文搜索的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Python基礎(chǔ)語法:變量、常量與表達(dá)式實(shí)戰(zhàn)案例
這段文章詳細(xì)介紹了Python編程中的三大基礎(chǔ)概念:變量、常量與表達(dá)式,文章通過實(shí)例講解了變量的定義、命名規(guī)則及使用方法,強(qiáng)調(diào)了常量的命名規(guī)范和表達(dá)式的的基本組成,感興趣的朋友一起看看吧2026-06-06

