#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