我是openpyxl的新手,正在开发一种需要复制的工具。粘贴专栏。
我有一个包含两组excel文件的文件夹。我需要脚本遍历文件,找到名为" GenLU_xx" (xx表示像卡尔加里这样的地方的名称)和复制列C& E(3& 5)。然后它需要找到名为" LU_Summary_xx"的相应文件。 (xx再次表示像卡尔加里这样的地方名称)并将复制的列粘贴到该工作簿的第二个工作表。它需要将GenLU_Calgary与LUZ_Summary_Calgary匹配,依此类推所有文件。到目前为止,我还没有找到复制和粘贴列的代码,看似双重迭代让我感到困惑。我的python技能是初学者,虽然我通常能够通过查看示例来找出代码。在这种情况下,我在查找示例代码时遇到了一些麻烦。刚开始使用openpyxl。我已经完成了脚本,除了与excel有关的部分。希望有人可以提供帮助。任何帮助将非常感激!
编辑:StackOverflow的新手,所以不知道为什么我得到-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添加一个值,并创建第二张表。
正如我之前提到的,我还没有弄清楚复制整列的值的代码。
我想我可以遍历所有以" GenLU *"开头的文件。使用glob然后存储第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列中。
答案 0 :(得分:5)
查理的代码通过使用openpyxl-2.3.3将'col = 4'更改为'column = 4'为我工作
ws.cell(row=idx, column=4).value = cell.value