其他分享
首页 > 其他分享> > 从工作簿复制列,粘贴第二个工作簿的第二张,openPyXL

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

作者:互联网

我是openpyxl的新手,正在开发一种需要复制的工具.粘贴专栏.

我有一个包含两组excel文件的文件夹.我需要脚本遍历文件,找到名为“GenLU_xx”的文件(xx表示像卡尔加里这样的地方的名称)并复制列C& E(3& 5).然后需要找到名为“LU_Summary_xx”的相应文件(xx再次表示像Calgary这样的地方名称)并将复制的列粘贴到该工作簿的第二张表中.它需要将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添加一个值,并创建第二个工作表.

正如我之前提到的,我还没有弄清楚复制整列的值的代码.

我想我可以使用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

标签:openpyxl,python,excel,copy-paste
来源: https://codeday.me/bug/20190724/1527048.html