长沙装修公司口碑比较好的,wordpress主题 SEO优化,手机号码定位网站开发,娱乐公司网站建设价格在做数值计算时#xff0c;个人比较习惯利用excel文档的公式做数值计算进行对比#xff0c;检查异常#xff0c;虽然计算量大后#xff0c;excel计算会比较缓慢#xff0c;但设计简单#xff0c;易排错 但一般测试过程中使用到的数据都不是最终数值#xff0c;会不停根据…在做数值计算时个人比较习惯利用excel文档的公式做数值计算进行对比检查异常虽然计算量大后excel计算会比较缓慢但设计简单易排错 但一般测试过程中使用到的数据都不是最终数值会不停根据体验进行调整数值导致计算表中使用到的数据需要时不时更新一次为避免要用到的工作表过多不好手动复制所以利用pandas和openpyxl写了个更新脚本具体实现功能如下 假设数值计算需要使用A文档中的A1、A3、A4工作表B文档中的B2、B4工作表 运行脚本后 1.将数值计算文档中的A1、A3、A4、B2、B4复制表删除 2.重新到AB文档所在目录中找到AB文档 3.复制A1、A3、A4、B2、B4工作表内容 4.在数值计算文档中重新创建A1、A3、A4、B2、B4复制表并插入对应表内容 import pandas as pd
from openpyxl import load_workbook
import json
import os# 更新计算文档数据
class update_calculate_excel:def __init__(self):# 读取json文件获取数据表对应信息self.data_json json.loads(open(read_data.txt, r, encodingUTF-8).read())self.file_path self.data_json[数据路径]self.excel_path self.data_json[公式路径]self.sheet_name self.data_json[sheet_name]# 更新工作表def update_sheet(self):# 读取需要更新的工作表for key in self.sheet_name:# 拼接Excel文件绝对路径read_excel_doc self.file_path \\ key .xlsx# 判断文件是否存在不存在则退出循环if not os.path.exists(read_excel_doc):print(------------------------------------------------)print(read_excel_doc, 文件不存在!!!!!, )print(------------------------------------------------)continuefor sheet_name in self.sheet_name[key]:# 读取所需要复制的sheet工作表self.read_sheet(key, sheet_name)# 读取工作表内容并拷贝def read_sheet(self, excel_name, sheet_name):# 拼接Excel文件绝对路径read_excel_doc self.file_path \\ excel_name .xlsx# 拼接公式文档中的工作表名称copy_sheet_name {}_{}.format(excel_name, sheet_name)try:raw_data pd.read_excel(read_excel_doc, headerNone, index_colNone, sheet_namesheet_name)data raw_data.values.tolist()self.write_calculation_excel(copy_sheet_name, data)print(copy_sheet_name, 复制完成)except ValueError:print(------------------------------------------------)print(copy_sheet_name, 不存在)print(------------------------------------------------)return# 将更新过的配置文档重新写入公式表中实现公式表数据更新def write_calculation_excel(self, sheet_name, data):# 读取Excel文件中的所有工作表calculation_excel_sheet load_workbook(self.excel_path)# 判断公式文档是否存在工作表if sheet_name in calculation_excel_sheet.sheetnames:# 删除公式文档内原有的工作表calculation_excel_sheet.remove(calculation_excel_sheet[sheet_name])# 创建新的空白工作表利于数据插入calculation_excel_sheet.create_sheet(sheet_name)for row in data:# 循环插入数据calculation_excel_sheet[sheet_name].append(row)# 保存文件calculation_excel_sheet.save(self.excel_path)if __name__ __main__:json update_calculate_excel()json.update_sheet()read_data.txt内容为存放所需数据的json格式数据 {数据路径: D:\\xxx\\excel,公式路径: D:\\xxx\\数值计算.xlsx,sheet_name: {Z_装备配置: [kit_buff,kit],Y_英雄配置: [hero,hero_level,hero_star],Z_专武配置: [armscfg,arms_level,arms_star,arms_refine,arms_refines]}
} 使用json格式数据是为了方便后续增加所需复制的工作表也方便路径变更后可直接修改txt文件而非代码