Для цикла Python OpenPyXL в Excel

#python #python-3.x #excel #openpyxl

#python #python-3.x #excel #openpyxl

Вопрос:

Контекст

Получен переменный вывод, содержащий текст, упомянутый ниже. Тем не менее, я хочу вставить каждую выходную строку в каждую строку A в Excel. Как мне это сделать?

Вывод

  • Текст 1
  • Текст 2
  • Текст 3

Текущий код

 # Open Workbook
wb = load_workbook('Fortimail-config.xlsx')
ws = wb.active

# Create a workbook sheet name.
sheet = wb['Sheet']

sheet.cell(row=1, column=1).value = output

wb.save("Fortimail-config.xlsx")
 

Что я получаю

  • A1 = Текст 1 Текст 2 Текст 3

Чего я хочу

  • A1 = Текст 1
  • A2 = Текст 2
  • A3 = Текст 3

Ответ №1:

sheet.cell(row=1, column=1).value = output здесь код присваивает значение строке 1 и столбцу 1. Поэтому это будет отображаться в ячейке Excel A1

Предполагая output , что переменная является массивом; вы можете добавить его к листу, используя sheet.append() , и он добавит массив в каждую строку.

Например:

 output = ['Text 1', 'Text 2', 'Text 3']

wb = load_workbook('Fortimail-config.xlsx')
ws = wb.active

# Create a workbook sheet name.
sheet = wb['Sheet']

sheet.append(output)

wb.save("Fortimail-config.xlsx")
 

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

1. Спасибо за совет и ваш ответ. Я только что попробовал это по-своему, но данные теперь перемещаются из A1 B1 C1 и т.д.

2. извините, возможно, я неправильно истолковал вопрос. Если вы замените output = [‘Текст 1’, ‘Текст 2’, ‘Текст 3’] на output = [[‘Текст 1’, ‘Текст 2’, ‘Текст 3’]] (двойные скобки), вы должны увидеть все данные в строке A