python - 将结果写入 excel B 列
问题描述
下面的代码当前从 Excel 表中为 A 列中的单词位置翻译每个单词,但是它当前在编辑器中给我的结果,但我希望在 B 列中的同一个 Excel 表中翻译输出/结果。下面的代码给出我一个错误。请帮助我在 B 列中用 excel 编写结果的代码。
import xlrd
import goslate
loc = r"C:\path\fruits.xlsx"
gs = goslate.Goslate()
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)
for i in range(sheet.nrows):
print(gs.translate(sheet.cell_value(i, 0), 'de'))
print(sheet.cell_value(i, 1)
我收到以下错误
return self._cell_values[rowx][colx]
IndexError: list index out of range
请有人帮我将我的输出/结果写在 B 列中的相同 excel 中
解决方案
该错误是由于您没有B
为空的并且包没有从工作表中读取列而引起的。
要将翻译结果写入工作表,您可以执行以下操作:
我不认为xlrd
可以写到工作表。您将需要使用xlwt
包。您将需要安装它pip install xlwt
import xlrd
import xlwt # this package is going to write to sheet
import goslate
loc = "dummy.xlsx"
translated = "dummy2.xlsx" # location to where store the modified sheet
gs = goslate.Goslate()
# crate a workbook using xlwt package in order to write to it.
wbt = xlwt.Workbook() # there is a typo here. this should be wbt
ws = wbt.add_sheet('A Test Sheet') # change this to your sheet name
rwb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)
for i in range(sheet.nrows):
ws.write(i, 0, sheet.cell_value(i, 0)) # this will write the A column value
ws.write(i, 1, gs.translate(sheet.cell_value(i, 0), 'de')) # this will write the B column value
wbt.save(translated) # this will save the sheet.
至于在同一个文件中进行更改,我认为您不应该这样做。该文件已被另一个进程以读取模式打开。更改它可能会导致意外行为。但是,如果您打算这样做,请备份您的文件,并在读取和保存文件时设置 loc。
推荐阅读
- r - 如何在情节中在标题周围添加填充?
- sql - 如果不在排除表中,则插入 Sqlite
- angular - 更新不同的可观察值时如何更新可观察值?
- android - 集成系统语音操作,就像在 Twitter“查找 [xyz] [on] [app_name]”中一样。“在 [app_name] 上搜索 [xyz]”已经在工作
- angular - 在异步函数完成后调用一个函数
- powershell - 撤消 Conda Powershell 提示修改
- gulp - 使用 gulp 系列时从未定义的任务
- r - R - 用 dplyr 中的特定值替换变量
- c++ - 如何不使用命令行参数编译 CMakeLists.txt 的一部分?
- perforce - Perforce 工作区创建问题