从工作簿中复制列,粘贴到第二个工作簿的第二张,openPyXL

时间:2015-08-24 00:48:47

标签: python excel copy-paste openpyxl

我是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列中。

1 个答案:

答案 0 :(得分:5)

查理的代码通过使用openpyxl-2.3.3将'col = 4'更改为'column = 4'为我工作

ws.cell(row=idx, column=4).value = cell.value