我使用python来自动化使用excel表列表创建多个名称标记的过程。
我的问题是,我需要接受'name‘列和'enterprise’列值,并将它们放在一个新文档的单个单元格中。
如下所示:

对此:

现在,我正在使用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
发布于 2019-10-18 18:47:15
根据文档,preenchernome.value只能有一个值
试着用这个
preenchernome.value = '{}\n{}'.format(nome, empresa)发布于 2019-10-18 19:05:28
传递给目标单元格的值应该是单个字符串。因此:
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()https://stackoverflow.com/questions/58456495
复制相似问题