【Python】实现excel文档中指定工作表数据的更新操作
在做数值计算时,个人比较习惯利用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', encoding='UTF-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, header=None, index_col=None, sheet_name=sheet_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文件而非代码
相关文章:

【Python】实现excel文档中指定工作表数据的更新操作
在做数值计算时,个人比较习惯利用excel文档的公式做数值计算进行对比,检查异常,虽然计算量大后,excel计算会比较缓慢,但设计简单,易排错 但一般测试过程中使用到的数据都不是最终数值,会不停根据…...

力扣(LeetCode)2731. 移动机器人(C++)
脑经急转弯排序 碰撞只改变运动方向,速度始终如"1",且机器人视为无差别的,所以碰撞等于擦肩而过!"机器人碰撞,到底撞没撞,如撞。"因此只考虑每个机器人单方向移动,d秒后停…...
vite和webpack
vite和webpack 文章目录 vite和webpackvite介绍什么是vite为什么使用vitevite优缺点热更新的实现原理 webpack介绍什么是webpackwebpack 优缺点 Vite 为什么比 Webpack 快vite和webpack的区别面试问题Vite为什么比webpack快? vite介绍 什么是vite Vite 是新型前端…...

MinIO图片正常上传不可查看,MinIO通过页面无法设置桶为public
项目场景:国产中标麒麟操作系统部署MinIO正常启动后发现图片能正常上传,但是匿名浏览该图片的时候无法查看。通过网络查询解决方案,得出的结论是:需要把当前上传文件的桶设置为public,由于创建桶默认是private且不可通过浏览器进行…...
Linux 指令心法(七)`cat` 查看、合并和创建文本文件
文章目录 命令的概述和用途命令的用法命令行选项和参数的详细说明命令的示例命令的注意事项或提示 命令的概述和用途 cat 是 “concatenate” 的缩写,它是一个 Linux 和 Unix 系统中的命令,用于查看、合并和创建文本文件。cat 主要用于以下几个方面&…...

解决docker开启MySQL的binlog无法成功。docker内部报错:mysql: [ERROR] unknown variable
1. 报错信息 2. 操作流程 整个流程是这样的: 我愉快的输入docker ps,查看MySQL的docker 容器id 执行指令docker exec -it 8a \bin\bash进入容器内部执行vim /etc/my.cnf,打开配置文件按照网上说的,添加如下配置信息退出docker容…...
c,python ,java,c++ c#在控制台打印彩色文本
在C语言、Java和C#中,你可以通过使用特定的控制字符或库来设置文本颜色。下面分别演示如何在这三种编程语言中实现文本颜色的设置: 在C语言中实现文本颜色设置: C语言中的颜色设置通常依赖于特定的终端或操作系统。以下是一种使用C语言的方…...

MySQL数据库技术笔记(5)
聚合函数: count(): 统计某种数据的数量 sum(): 统计某种数据的总和 max(): 某种数据的最大值 min(): 某种数据的最小值 avg(): 某种数据的平均值 排序的用法 : 关键字 order by 升序 : ASC (从小到大排序) 默认为升序 降序 : DESC…...
python生成随机数
在Python中生成随机数可以使用内置的random模块。以下是一些生成随机数的示例: 生成一个0到1之间的随机浮点数: import random random_float random.random() print(random_float) 生成一个指定范围内的随机整数: import random random_int…...

Twitter优化秘籍:置顶、列表、受众增长
在 Twitter 上,将你的一条推送文置顶到个人数据顶部是提高可见性和吸引关注者的绝佳方式。无论你是个人用户还是企业,此功能都可以让你的重要信息常驻在众人眼前,即使你发布了新的推文。接下来,我们将分享一些优化建议,…...

vscode更改为中文版本
方式一 在扩展里安装chinese插件 方式二 1.Ctrl+ Shift +P(commandshiftP) 2.输入Configure display Language 3.选择zh-cn 这时候vscode会提示需要重启,点击restart重启vscode,重启后vscode就会显示中…...

【Linux系统KVM虚拟机实战】LVM逻辑卷之磁盘扩容
【Linux系统KVM虚拟机实战】LVM逻辑卷之磁盘扩容 一、LVM与KVM介绍1.1 LVM介绍1.2 KVM介绍1.2.1 KVM简介1.2.2 KVM优点二、本次实践介绍2.1 本次实践简介2.2 环境规划三、虚拟机环境检查3.1 检查KVM虚拟机磁盘空间3.2 KVM虚拟机检查系统情况3.3 检查物理磁盘分区3.4 查看PV状态…...

史上最全 结构型模式之 桥接 外观 组合 享元模式
史上最全 结构型模式之 代理 适配器 装饰者 模式-CSDN博客 5.4 桥接模式 5.4.1 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假…...

KBU810-ASEMI高性能整流桥KBU810
编辑:ll KBU810-ASEMI高性能整流桥KBU810 型号:KBU810 品牌:ASEMI 封装:KBU-4 恢复时间:>50ns 正向电流:8A 反向耐压:1000V 芯片个数:4 引脚数量:4 …...
uniapp快速入门系列(2)- Vue基础知识
章节二:Vue基础知识 Vue的介绍和特性Vue的简单易用Vue的灵活高效 Vue的常用指令和组件v-bind指令v-on指令Vue组件的通信方式父子组件通信兄弟组件通信 总结 Vue的介绍和特性 Vue是一款轻量级的JavaScript框架,用于构建用户界面。它的特点是简单易用、灵…...

mac(M1)安装anaconda3
首先下载 然后正常安装即可,之所以我现在测试了anaconda,因为我发现miniconda后,jupyter notebook的安装就出现问题,所以就直接卸载miniconda,而直接安装anaconda了 (base) yxkbogon ~ % pip list Package …...

vscode远程ssh服务器且更改服务器别名
目录 1、打开VS Code并确保已安装"Remote - SSH"扩展。如果尚未安装,请在扩展市场中搜索并安装它。 2、单击左下角的"Remote Explorer"图标,打开远程资源管理器。 3、在远程资源管理器中,单击右上角的齿轮图标&#x…...

【算法笔记】LCR 086. 分割回文串
基本思想是使用回溯法,回溯法都可以将问题划分为一个解空间树:假设字符串s为"aab",那么我们可以使用深度优先搜索去构建解空间树: dfs遍历出来的第一个序列是[a, a, b],显然该序列都是回文子串,…...
centos 安装svn
卸载 yum remove subversion安装 yum -y install subversion仓库目录 mkdir -p /home/svn/project版本目录 svnadmin create /home/svn/project主目录切换 cd /home/svn/project/conf服务配置 vim svnserve.confanon-access read auth-access write …...
Java中的类加载器双亲委派模型机制
Java中的类加载器双亲委派模型机制 Java中的类加载器双亲委派模型是一种类加载机制,用于加载Java类文件。它有助于维护类加载器的层次结构,并确保类的唯一性。以下是关于类加载器双亲委派模型的详细解释、作用、优缺点,以及示例说明。 双亲…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...