使用 Openpyxl 获取 Worksheet 对象的循环 Excel 文件不可调用错误

Looping Through Excel Files using Openpyxl getting Worksheet object is not callable error

我目前正在尝试遍历一个文件夹中的不同 excel 文件,并将它们合并到一个主文件中。但是,在尝试实现此循环时出现错误 Worksheet object is not callable.

这是代码(为我糟糕的命名约定道歉):

 import openpyxl

 import openpyxl.formula

 import pandas

 import os

 from openpyxl import Workbook
 from openpyxl.styles import Alignment
 from openpyxl.utils import get_column_letter
 from openpyxl import load_workbook
 from openpyxl import worksheet
 #
 # Declaration of openpyxl variables
 #
 directoryPath = "C:\Users\Desktop\ExcelForReverse\"
 productionPath = "C:\Users\Desktop\TransformedReverse.xlsx"
 book_empty = Workbook()
 book_empty.save(productionPath)
 book_empty.create_sheet("Internals")
 book_empty.create_sheet("Externals")
 book_empty.create_sheet("All Formatted")
 del_sheet = book_empty["Sheet"]
 book_empty.remove_sheet(del_sheet)
 book_empty.save(productionPath)
 sheet_externals_con = book_empty["Externals"]
 sheet_internals_con = book_empty["Internals"]
 os.chdir(directoryPath)
 folder_list = os.listdir(directoryPath)
 attempt = 1
 rowvar_externals = 2
 rowvar_internals = 2
 for folders, sub_folders, file in os.walk(directoryPath):  
   for name in file:
     if name.endswith(".xlsx"):
        filename = os.path.join(name)
        print(filename)
        wb_controller = load_workbook(filename, data_only=True)
        sheet_controller_internals = wb_controller['Input INT']
        sheet_controller_externals = wb_controller['Input EXT']
        numOfRows_externals = sheet_controller_externals.max_row
        numOfCols_externals = sheet_controller_externals.max_column
        numOfRows_internals = sheet_controller_internals.max_row
        numOfCols_internals = sheet_controller_internals.max_column
        if attempt == 1:
            for i in range(1,numOfCols_externals+1):
                sheet_externals_con.cell(row = 1, column = i).value = sheet_controller_externals.cell(row = 3, column = i).value

        for r in range(4,numOfRows_externals+1):
            for i in range(1,numOfCols_externals+1):
                sheet_externals_con.cell(row = rowvar_externals, column = i).value = sheet_controller_externals(row = r, column = i).value
            rowvar_externals = rowvar_externals + 1 

        if attempt == 1:
            for i in range(1,numOfCols_internals+1):
                sheet_internals_con.cell(row = 1, column = i).value = sheet_controller_internals.cell(row = 3, column = i).value            

        for r in range(4,numOfRows_internals+1):
            for i in range(1,numOfCols_internals+1):
                sheet_internals_con.cell(row = rowvar_internals, column = i).value = sheet_controller_internals(row = r, column = i).value 
            rowvar_internals = rowvar_internals + 1

        attempt = attempt + 1
        print("Worked")
book_empty.save(productionPath)

错误信息: 文件第 48 行,在 sheet_externals_con.cell(行=rowvar_externals,列=i).值=sheet_controller_externals(行=r,列=i).值

builtins.TypeError: 'Worksheet' 对象不可调用

该行不应该读作:

sheet_externals_con.cell(row = rowvar_externals, column = i).value = sheet_controller_externals.cell(row = r, column = i).value

哪里

sheet_controller_externals -> sheet_controller_externals.cell