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")