Python / Excel Automation - текст из 2 ячеек в 1 ячейку - PullRequest
2 голосов
/ 18 октября 2019

Я использую python для автоматизации процесса создания нескольких тегов имен с использованием списка листов Excel.

Моя проблема заключается в том, что мне нужно взять значения столбца 'name' и столбца 'enterprise'и поместите их в одну ячейку нового документа.

Например:

enter image description here

На это:

enter image description here

Сейчас я использую openpyxl и, хотя мне удается перенести один из столбцов, я не могу сделать это с обоими. Приведенный ниже код был одной из тех вещей, которые я пробовал.

import openpyxl as xl

e = xl.load_workbook('etiquetas.xlsx')
eplan = e['Planilha1']

c = xl.load_workbook('Crachá Relação 15.10.19.xlsx')
cplan = c['Plan1']

maxlinhas = cplan.max_row

for i in range (2, maxlinhas+1):
    nome = cplan.cell(row = i, column = 1).value
    preenchernome = eplan.cell(row = i-1, column = 1)
    empresa = cplan.cell(row=i, column=2).value
    preencherempresa = eplan.cell(row=i - 1, column=1)
    preenchernome.value = nome, empresa
e.save('teste.xlsx')

Но этот код возвращает следующую ошибку:

ValueError: Невозможно преобразовать ('Gladisson Garcia Westphal'), 'Agro Divel') в Excel

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Согласно документам preenchernome.value может иметь только одно значение

. Попробуйте использовать это

preenchernome.value = '{}\n{}'.format(nome, empresa)
.
0 голосов
/ 18 октября 2019

Значение, которое передается в целевую ячейку, должно быть одной строкой. Таким образом:

wksTarget.cell(row = i, column = 1).value = '{}\n{}'.format(name, family)

должно быть в порядке. Вот весь код, который работал для меня:

import openpyxl as xl
import os

wbSource = xl.load_workbook(os.path.dirname(os.path.realpath(__file__)) + '\myExcel.xlsx')
wksSourse = wbSource['Sheet1']

wbTarget = xl.load_workbook(os.path.dirname(os.path.realpath(__file__)) + '\Target.xlsx')
wksTarget = wbTarget['Sheet1']

for i in range (1, wksSourse.max_row+1):
    name = wksSourse.cell(row = i, column = 1).value
    family = wksSourse.cell(row = i, column = 2).value

    wksTarget.cell(row = i, column = 1).value = '{}\n{}'.format(name, family)

wbTarget.save(os.path.dirname(os.path.realpath(__file__)) + '\Target.xlsx')
wbTarget.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...