openpyxl 不保存嵌套循环
openpyxl not saving with nested loops
我正在尝试将 Excel 中的 10 行和 10 列文本从英语翻译成西班牙语。
下面的代码非常适合翻译单列中的 10 行。
import openpyxl
from translate import Translator
#open workbook
wb = openpyxl.load_workbook('Python Translate.xlsx')
#label individual sheets
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
#start at cell A1
row_loc = 1
column_loc = 1
#record cell values
while row_loc <= 10:
if ws1.cell(row = row_loc, column = column_loc).value != None:
text = ws1.cell(row = row_loc, column = column_loc).value
t = Translator(from_lang='English', to_lang='Spanish')
translation = t.translate(text)
ws2.cell(row = row_loc, column = column_loc).value = translation
wb.save('Python Translate.xlsx')
row_loc += 1
print("done")
但是,当我添加一个额外的 while 循环以循环遍历多列时,文件不再保存。
我是编程新手,所以可能有多个问题导致我的问题。
import openpyxl
from translate import Translator
#open workbook
wb = openpyxl.load_workbook('Python Translate.xlsx')
#label individual sheets
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
#start at cell A1
row_loc = 1
column_loc = 1
#record cell values
while column_loc <= 10:
while row_loc <= 10:
if ws1.cell(row = row_loc, column = column_loc).value != None:
text = ws1.cell(row = row_loc, column = column_loc).value
t = Translator(from_lang='English', to_lang='Spanish')
translation = t.translate(text)
ws2.cell(row = row_loc, column = column_loc).value = translation
wb.save('Python Translate.xlsx')
row_loc += 1
column_loc += 1
print("done")
column_loc 为 1,外层 while 循环只会在 >= 10 时执行 :)
编辑:现在应该可以工作了:
import openpyxl
from translate import Translator
#open workbook
wb = openpyxl.load_workbook('Python Translate.xlsx')
#label individual sheets
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
#start at cell A1
column_loc = 1
#record cell values
while column_loc <= 10:
row_loc = 1
while row_loc <= 10:
if ws1.cell(row = row_loc, column = column_loc).value != None:
text = ws1.cell(row = row_loc, column = column_loc).value
t = Translator(from_lang='English', to_lang='Spanish')
translation = t.translate(text)
ws2.cell(row = row_loc, column = column_loc).value = translation
wb.save('Python Translate.xlsx')
row_loc += 1
column_loc += 1
print("done")
我正在尝试将 Excel 中的 10 行和 10 列文本从英语翻译成西班牙语。 下面的代码非常适合翻译单列中的 10 行。
import openpyxl
from translate import Translator
#open workbook
wb = openpyxl.load_workbook('Python Translate.xlsx')
#label individual sheets
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
#start at cell A1
row_loc = 1
column_loc = 1
#record cell values
while row_loc <= 10:
if ws1.cell(row = row_loc, column = column_loc).value != None:
text = ws1.cell(row = row_loc, column = column_loc).value
t = Translator(from_lang='English', to_lang='Spanish')
translation = t.translate(text)
ws2.cell(row = row_loc, column = column_loc).value = translation
wb.save('Python Translate.xlsx')
row_loc += 1
print("done")
但是,当我添加一个额外的 while 循环以循环遍历多列时,文件不再保存。 我是编程新手,所以可能有多个问题导致我的问题。
import openpyxl
from translate import Translator
#open workbook
wb = openpyxl.load_workbook('Python Translate.xlsx')
#label individual sheets
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
#start at cell A1
row_loc = 1
column_loc = 1
#record cell values
while column_loc <= 10:
while row_loc <= 10:
if ws1.cell(row = row_loc, column = column_loc).value != None:
text = ws1.cell(row = row_loc, column = column_loc).value
t = Translator(from_lang='English', to_lang='Spanish')
translation = t.translate(text)
ws2.cell(row = row_loc, column = column_loc).value = translation
wb.save('Python Translate.xlsx')
row_loc += 1
column_loc += 1
print("done")
column_loc 为 1,外层 while 循环只会在 >= 10 时执行 :)
编辑:现在应该可以工作了:
import openpyxl
from translate import Translator
#open workbook
wb = openpyxl.load_workbook('Python Translate.xlsx')
#label individual sheets
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
#start at cell A1
column_loc = 1
#record cell values
while column_loc <= 10:
row_loc = 1
while row_loc <= 10:
if ws1.cell(row = row_loc, column = column_loc).value != None:
text = ws1.cell(row = row_loc, column = column_loc).value
t = Translator(from_lang='English', to_lang='Spanish')
translation = t.translate(text)
ws2.cell(row = row_loc, column = column_loc).value = translation
wb.save('Python Translate.xlsx')
row_loc += 1
column_loc += 1
print("done")