Переменная (имя вкладки) не работает, когда мне нужно заполнить ячейку

#python #tabs #openpyxl

#python #вкладки #openpyxl

Вопрос:

У меня проблема, к сожалению, эта комбинация не работает (пустые ячейки на вкладке «4» в качестве результата ниже кода). Вы знаете, в чем проблема? Мне нужно попасть на вкладку по переменной, не имеющей фиксированного имени.

 book.create_sheet("4")
tab_4 = book.get_sheet_by_name('4')
ktora = 4
ktora_zakladka = "tab_"   str(ktora)
ktora_zakladka  ".cell(column="   str(numerkolumny)  ", row="   str(wiersz_zakladka4)  ", value="   
str(assets3[w2])   ").font = style_blad"
  

Когда я просматриваю ниже, все в порядке:

 tab_4.cell(column=numerkolumny, row=wiersz_zakladka4, value=assets3[w2]).font=style_blad
  

Комментарии:

1. Мне кажется, что вам не помешал бы учебник по Python. Вероятно, это все, что вам нужно сделать: ws = book["tab_4"]; cell = ws.cell(row=wiersz_zakladka4, column=numerkolumny); cell.font =Font(bold=True)

Ответ №1:

Вам нужно использовать = для добавления к строке. Используется exec для запуска динамического кода.

Попробуйте этот код:

 from openpyxl import Workbook
book = Workbook()

numerkolumny = wiersz_zakladka4 = 9
w2 = 0
assets3 = [123]

book.create_sheet("4")
tab_4 = book.get_sheet_by_name('4')
ktora = 4
ktora_zakladka = "tab_"   str(ktora)
ktora_zakladka  = ".cell(column="   str(numerkolumny)  ", row="   str(wiersz_zakladka4)  ", value="   
str(assets3[w2])   ").font = 'style_blad'"

exec(ktora_zakladka)  # run command, write to excel file

book.save('tab4.xlsx')
  

Комментарии:

1. Нет необходимости использовать exec вообще.