|

楼主 |
发表于 2024-4-3 08:52:50
|
显示全部楼层
可能我昨天没有讲清楚...
现有代码是这样的:
def data_summary(self, data_summary):
### 找到需要表内平衡验证的工作簿
for file in self.File_List:
if file.endswith('.xls') and file != self.Base_Workbook and file != '汇总表.xls':
file_path1 = os.path.join(self.File_Path, file)
Source_workbook = xlrd.open_workbook(file_path1, formatting_info=True)
file_path2 = os.path.join(self.File_Path, '汇总表.xls')
Target_workbook = xlrd.open_workbook(file_path2, formatting_info=True)
elif file.endswith('.xlsx') and file != self.Base_Workbook and file != '汇总表.xlsx':
file_path1 = os.path.join(self.File_Path, file)
Source_workbook = load_workbook(file_path1)
file_path2 = os.path.join(self.File_Path, '汇总表.xlsx')
Target_workbook = load_workbook(file_path2, formatting_info=True)
# 遍历源簿中sheet
for sheet_name in Source_workbook.sheet_names():
## 读取目标簿sheet_name工作表
ws_target.sheet = Target_workbook.sheet_by_name(sheet_name)
# 判断目标簿是否存在同名sheet
if sheet_name in Target_workbook.sheet_names():
# 复制目标工作簿
wb_target = copy(Target_workbook)
# 读取源工作簿下的sheet_name工作表
Temp_sheet = wb_target.get_sheet(sheet_name)
self.plainTextEdit.ensureCursorVisible()
SourceSheet = Source_workbook.sheet_by_name(sheet_name)
Rows = SourceSheet.nrows
Cols = SourceSheet.ncols
### 应用行(列)排除规则
for row_num in range(Rows):
if row_num not in exclude_rows:
row_add = row_num
for col_num in range(Cols):
if col_num not in exclude_cols:
col_add = col_num
### 获取目标文件中指定单元格的值
value1 = ws_target.cell(row_add, col_add).value
### 获取源文件中指定单元格的值
value2 = SourceSheet.cell(row_add, col_add).value
### 判断俩单元格值的类型并相加
if isinstance(value1, (int, float)) and isinstance(value2, (int, float)):
# 如果两个值都是数值类型
value1 = value1 + value2
elif isinstance(value1, (int, float)) or isinstance(value2, (int, float)):
# 如果只有一个值是数值类型
if isinstance(value1, (int, float)):
value1 = value1
else:
value1 = value2
else:
# 如果两个值都不是数值类型
value1 = ' '
### 更新目标文件中指定单元格的值
Temp_sheet.write(row_add, col_add, value1)
###保存目标文件
wb_target.save('汇总表.xls')
然后报错:
Traceback (most recent call last):
line 1854, in data_summary
for sheet_name in Source_workbook.sheet_names():
^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'Source_workbook' where it is not associated with a value
回复请注意Python格式
|
|