我是openpyxl的新手,正在开发一种需要复制的工具.粘贴专栏.
我有一个包含两组excel文件的文件夹.我需要脚本遍历文件,找到名为“GenLU_xx”的文件(xx表示像卡尔加里这样的地方的名称)并复制列C& E(3& 5).然后需要找到名为“LU_Summary_xx”的相应文件(xx再次表示像Calgary这样的地方名称)并将复制的列粘贴到该工作簿的第二张表中.它需要将GenLU_Calgary与LUZ_Summary_Calgary匹配,依此类推所有文件.到目前为止,我还没有找到复制和粘贴列的代码,看似双重迭代让我感到困惑.我的python技能是初学者,虽然我通常能够通过查看示例来找出代码.在这种情况下,我在查找示例代码时遇到了一些麻烦.刚开始使用openpyxl.我已经完成了脚本,除了与excel有关的部分.希望有人可以提供帮助.任何帮助将非常感激!
编辑:*的新手,所以不知道为什么我得到-2.也许是因为缺少任何代码?
这是我到目前为止:
import os, openpyxl, glob
from openpyxl import Workbook
Tables = r"path"
os.chdir(Tables)
for file in glob.glob ("LUZ*"):
wb = openpyxl.load_workbook(file)
ws = wb.active
ws ["G1"] = "GEN_LU_ZN"
wb.create_sheet(title="Sheet2")
wb.save(file)
这只是为从LUZ开始的每个文件的G1添加一个值,并创建第二个工作表.
正如我之前提到的,我还没有弄清楚复制整列的值的代码.
我想我可以使用glob迭代所有以“GenLU *”开头的文件,然后存储第3列和第3列的值. 5但我仍然无法弄清楚如何访问列的值.我没有一系列行,因为每个工作簿的两列的行数不同.
编辑2:我可以使用以下代码访问特定列的单元格值:
for file in glob.glob ("GenLU_Airdrie*"):
wb = openpyxl.load_workbook(file, use_iterators=True)
ws = wb.active
for row in ws.iter_rows ('C1:C200'):
for cell in row:
values = cell.value
print values
但是我不确定如何在另一张表的A栏中“粘贴”这些值.
解决方法:
查理的代码通过使用openpyxl-2.3.3将’col = 4’更改为’column = 4’为我工作
ws.cell(row=idx, column=4).value = cell.value