You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pylightxl将Excel转为字典实现Python西班牙语翻译器

基于pylightxl实现Excel驱动的西班牙语翻译器

问题背景

原本通过字典实现了一个简单的西班牙语翻译器,代码如下:

translate = input("input: ")

translate_dictionary = {
  "Hello": "Hola",
  "Goodbye": "adiós"
}
for english, spanish in translate_dictionary.items():
  translate = translate.replace(english, spanish)
print(translate)

现在希望改用pylightxl读取Excel文件实现翻译,Excel内容如下:

AB
HelloHola
Goodbyeadiós

目标是将Excel的A列文本作为键,B列作为值构建翻译字典,替换用户输入中的对应内容,但当前编写的pylightxl代码存在问题:

import pylightxl as xl

translate = input("input: ")

db = xl.readxl(fn='translate_library.xlsx')
 
for english, spanish in str(db):
    translate = translate.replace(db.ws(ws='Sheet1').address(address='A1'), db.ws(ws='Sheet1').address(address='B1'))

print(translate)

代码问题分析

  • 错误地将数据库对象db转为字符串遍历,完全不符合pylightxl的使用逻辑
  • 硬编码了A1和B1单元格地址,只会替换这一组内容,无法遍历所有翻译条目

正确实现代码

import pylightxl as xl

# 获取用户输入
translate_input = input("input: ")

# 读取Excel文件并指定工作表
db = xl.readxl(fn='translate_library.xlsx')
ws = db.ws('Sheet1')

# 从Excel中构建翻译字典:A列(第1列)为键,B列(第2列)为值
translate_dict = {}
# 从第2行开始遍历(第1行是表头)
for row_num in range(2, ws.nrows + 1):
    english_text = ws.address(row=row_num, col=1)
    spanish_text = ws.address(row=row_num, col=2)
    translate_dict[english_text] = spanish_text

# 遍历字典执行文本替换
for eng, spa in translate_dict.items():
    translate_input = translate_input.replace(eng, spa)

# 输出翻译结果
print(translate_input)

代码说明

  • 使用ws.nrows获取工作表总行数,确保遍历所有数据行
  • 通过row和col参数动态定位单元格,避免硬编码固定地址
  • 先构建完整的翻译字典,再执行替换逻辑,和原字典实现的逻辑保持一致,保证兼容性

内容的提问来源于stack exchange,提问作者ctrl_c_ctrl_v

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:36:27