openpyxl не сохраняется с вложенными циклами - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь перевести 10 строк и 10 столбцов текста в Excel с английского sh на испанский sh. Приведенный ниже код хорошо работает для перевода 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")

Однако, когда я добавляю дополнительное время l oop для циклического перемещения по нескольким столбцам, файл больше не сохраняется. Я новичок в программировании, поэтому может быть несколько проблем, вызывающих мою проблему.

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

1 Ответ

0 голосов
/ 14 апреля 2020

column_lo c равно 1, а внешнее значение l oop будет выполняться только в том случае, если>> 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")
...