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

2023-12-05

我是 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 添加一个值并创建第二个工作表。

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

我想我可以使用 glob 迭代以“GenLU*”开头的所有文件,然后存储第 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 列中。


Charlie 的代码通过使用 openpyxl-2.3.3 将 'col=4' 更改为 'column=4' 对我有用

ws.cell(row=idx, column=4).value = cell.value
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从工作簿复制列,粘贴到第二个工作簿的第二张工作表中,openPyXL 的相关文章

随机推荐