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

我是新来的openpyxl和开发一个工具,需要复制和粘贴列。

我有一个包含两套excel文件的文件夹。 我需要脚本遍历这些文件,find名为“GenLU_xx”(xx代表卡尔加里等地名称)的文件,然后复制Columns C&E(3&5)。 然后需要find名为“LU_Summary_xx”的相应文件(xx再次表示卡尔加里等地方的名称),并将复制的列粘贴到该工作簿的第二个工作表中。 它需要匹配GenLU_Calgary和LUZ_Summary_Calgary等所有文件。 到目前为止,我还没有能够找出复制和粘贴列的代码,看似双倍的迭代让我感到困惑。 我的Python技能是初学者,虽然我通常可以通过查看例子来找出代码。 在这种情况下,我在定位示例代码时遇到了一些问题。 刚开始使用openpyxl。 除了excel相关的部分,我已经完成了脚本。 希望有人可以帮忙。 任何帮助将非常感激!

编辑:新到StackOverflow以及所以不知道为什么我得到-2。 也许是由于缺less任何代码?

这是我到目前为止:

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添加一个值,并创build第二个表单。

正如我前面提到的,我还没有找出复制整个列的值的代码。

我想我可以迭代通过使用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列。

查理的代码通过使用openpyxl-2.3.3将“col = 4”更改为“column = 4”

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

如果你真的想要使用列,那么你可以在读取文件时使用.columns属性。

要将这些值从一个表格复制到另一个表格中,您只需分配这些值 以下将从一个工作表复制A1的值到另一个。

 ws1 = wb1.active ws2 = wb2.active ws2['A1'] = ws1['A1'].value 

复制列D代码可能看起来像这样

 col_d = ws1.columns[3] # 0-indexing for idx, cell in enumerate(col_d, 1): ws.cell(row=idx, col=4).value = cell.value #1-indexing