python- excel 创建/写入/删sheet+花式遍历

文章目录

  • 前言
    • python- excel 创建/写入/删sheet+花式遍历
      • 1. excel 创建
      • 2. 写入excel
      • 3. 创建写入excel demo实战
      • 4. 删除sheet
      • 5. excel 花式遍历 demo实战
        • 5.1. 获取 A1的值
        • 5.2. 获取指定列的切片数据,获取 B1到B5的值
        • 5.3. 循环整个excel的这个sheet
        • 5.4. 遍历指定行&列:从第2行开始至第5行,每行打印5列
        • 5.5. 遍历指定列:从第2列第4列
        • 5.5. 按列循环
      • 6. excel 花式遍历完整demo

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


python- excel 创建/写入/删sheet+花式遍历

1. excel 创建

创建一个excel放到内存里
wb = Workbook()
获取当前活动的sheet
sheet = wb.active
修改sheet名称
sheet.title = ‘修改的名称’
保存到本地
wb.save(路径/xx.xlsx)

2. 写入excel

打开已有文件
wb = load_workbook(path)
获取当前活动的sheet
sheet = wb.active
写入方式一、数据可以直接分配到单元格(可以输入公式)
sheet[‘A1’] = ‘你好啊’
写入方法二、可以附加行,从第一列开始附加(从最下空白处,最左开始)(可以输入多行)
sheet.append([1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
sheet.append([1, 2, 3, 4, 5, 1, 2, 3, 4, 5])

写入方式三、python 类型会自动转换
sheet[‘B1’] = datetime.datetime.now().strftime(‘%Y-%m-%d’)
创建一个新的sheet
newSheet = wb.create_sheet(“NewSheet”)
保存
wb.save(path)

3. 创建写入excel demo实战

import datetime
import os
import string
import random
from openpyxl import Workbook, load_workbook# 返回指定目录下的所有文件和目录名
def listdir(file_path):paths = os.listdir(file_path)print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')return pathsdef deleteFile(path):# 删除该目录下所有文件files = listdir(path)for file_name in files:# 函数会根据操作系统自动使用适当的分隔符,生成路径file_path_del = os.path.join(path, file_name)try:if os.path.isfile(file_path_del):  # 检查是否为文件os.remove(file_path_del)  # 删除文件print(f"Deleted {file_path_del}")else:print(f"Skipped {file_path_del} (not a file)")except OSError as error:print(f"Error while deleting {file_path_del}: {error}")# 生成随机字符串
def createNum():v = "".join(random.sample(string.ascii_lowercase + string.digits, 10))return v"""创建excel@:param sheetName Sheet名字@:param path 持久化路径
"""
def createExcel(sheetName, path):# 创建一个excel放到内存里wb = Workbook()# 获取当前活动的sheetsheet = wb.activeprint(f'打印sheet表名:{sheet.title}')# 修改sheet名称sheet.title = sheetNameprint(f'打印修改后的sheet表名:{sheet.title}')# 持久化到本地wb.save(path)
if __name__ == '__main__':try:# 创建excelexcelName = f'测试-{createNum()}.xlsx'sheetName = '测试1'file_path = 'D:\pythonExcel'# 清理 D:\pythonExcel下所有文件deleteFile(file_path)path = os.path.join(file_path, excelName)createExcel(sheetName, path)# 打开已有文件,并写入数据wb = load_workbook(path)# 获取当前活动的sheetsheet = wb.active# 方式一、数据可以直接分配到单元格(可以输入公式)sheet['A1'] = '你好啊'# 方法二、可以附加行,从第一列开始附加(从最下空白处,最左开始)(可以输入多行)for i in range(1, 10):sheet.append([1, 2, 3, 4, 5, 1, 2, 3, 4, 5])sheet.append([6, 7, 8, 9, 10, 6, 7, 8, 9, 10])# 方式三、python 类型会自动转换sheet['B1'] = datetime.datetime.now().strftime('%Y-%m-%d')# 创建一个新的sheetnewSheet = wb.create_sheet("NewSheet")# 设置新sheet为活动sheetwb.active = newSheetnewSheet.append(['测试1', '测试2', '测试3', '测试4', '测试5', '测试6', '测试7', '测试8', '测试9', '测试10'])for i in range(1, 10):newSheet.append([1, 2, 3, 4, 5, 1, 2, 3, 4, 5])newSheet.append([6, 7, 8, 9, 10, 6, 7, 8, 9, 10])wb.save(path)except Exception as e:print(f"Exception: {e}")

执行测试:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 删除sheet

wb.remove(sheet)

demo实战:

import os
from openpyxl import load_workbookdef listdir(file_path):paths = os.listdir(file_path)print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')return pathsif __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')print('删除sheet:测试1')sheet = wb['测试1']wb.remove(sheet)wb.save(path)# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')except Exception as e:print(f"Exception : {e}")

5. excel 花式遍历 demo实战

import os
from openpyxl import load_workbookdef listdir(file_path):paths = os.listdir(file_path)print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')return paths
5.1. 获取 A1的值
if __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']# 获取 A1的值print('======================获取A1的值')print(f'A1:{sheet["A1"].value}')except Exception as e:print(f"Exception : {e}")

在这里插入图片描述

5.2. 获取指定列的切片数据,获取 B1到B5的值
if __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']# 获取指定列的切片数据,获取 B1到B5的值print('======================获取指定列的切片数据,获取 B1到B5的值')for cell in sheet["B1:B5"]:print(f'{cell[0].coordinate}:{cell[0].value}')# for row in cell:#     print(f'{row.coordinate}:{row.value}')except Exception as e:print(f"Exception : {e}")

在这里插入图片描述

5.3. 循环整个excel的这个sheet

if __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']print('======================循环整个excel的这个sheet')for row in sheet:for cell in row:print(cell.value, end=',')print()except Exception as e:print(f"Exception : {e}")

在这里插入图片描述

5.4. 遍历指定行&列:从第2行开始至第5行,每行打印5列

if __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']print('======================遍历指定行&列:从第2行开始至第5行,每行打印5列')for row in sheet.iter_rows(min_row=2, max_row=5,  max_col=5):for cell in row:print(cell.value, end=',')print()except Exception as e:print(f"Exception : {e}")

在这里插入图片描述

5.5. 遍历指定列:从第2列第4列

if __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']print('======================遍历指定列:从第2列第4列')for row in sheet.iter_rows(min_col=2,  max_col=4):for cell in row:print(cell.value, end=',')print()except Exception as e:print(f"Exception : {e}")

在这里插入图片描述

5.5. 按列循环

if __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']print('======================按列循环')for row in sheet.columns:for cell in row:print(cell.value, end=',')print()except Exception as e:print(f"Exception : {e}")

在这里插入图片描述

6. excel 花式遍历完整demo

import os
from openpyxl import load_workbookdef listdir(file_path):paths = os.listdir(file_path)print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')return pathsif __name__ == '__main__':path = 'D:\pythonExcel'try:fileName = listdir(path)file_path =os.path.join(path,  fileName[0])# 打开已有文件wb = load_workbook(file_path)# 获取所有 sheetprint(f'获取所有sheet:{wb.sheetnames}')# 获取【NewSheet】 sheet页sheet = wb['NewSheet']# 获取 A1的值print('======================获取A1的值')print(f'A1:{sheet["A1"].value}')# 获取指定列的切片数据,获取 B1到B5的值print('======================获取指定列的切片数据,获取 B1到B5的值')for cell in sheet["B1:B5"]:print(f'{cell[0].coordinate}:{cell[0].value}')# for row in cell:#     print(f'{row.coordinate}:{row.value}')print('======================循环整个excel的这个sheet')for row in sheet:for cell in row:print(cell.value, end=',')print()print('======================遍历指定行&列:从第2行开始至第5行,每行打印5列')for row in sheet.iter_rows(min_row=2, max_row=5,  max_col=5):for cell in row:print(cell.value, end=',')print()print('======================遍历指定列:从第2列第4列')for row in sheet.iter_rows(min_col=2,  max_col=4):for cell in row:print(cell.value, end=',')print()print('======================按列循环')for row in sheet.columns:for cell in row:print(cell.value, end=',')print()except Exception as e:print(f"Exception : {e}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始学习:如何使用Selenium和Python进行自动化测试?

安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回…

【C++ techniques】Reference counting(引用计数)

Reference counting的两个技术动机: 为了简化heap objects周边的簿记工作,当对象运用了引用计数技术,一旦不再有任何人使用它,它便自动销毁自己,也因此,reference counting建构出垃圾回收机制的一个简单形…

Unity2017适配安卓12

测试版本为Unity2017.4.25f1 1.在自定义AndroidManifest.xml&#xff08;位于Assets\Plugins\Android\&#xff09;中添加android:exported"true" <?xml version"1.0" encoding"utf-8"?> <manifestxmlns:android"http://schema…

LuatOS-SOC接口文档(air780E)-- http - http 客户端

示例 -- 使用http库,需要引入sysplus库, 且需要在task内使用 require "sys" require "sysplus"sys.taskInit(function()sys.wait(1000)local code,headers,body http.request("GET", "http://www.example.com/abc").wait()log.info(…

探索 Redis 与 MySQL 的双写问题

在日常的应用开发中&#xff0c;我们经常会遇到需要使用多种不同类型的数据库管理系统来满足各种业务需求。其中最典型的就是Redis和MySQL的组合使用。 这两者拥有各自的优点&#xff0c;例如Redis为高性能的内存数据库提供了极快的读写速度&#xff0c;而MySQL则是非常强大的…

归一化与标准化的区别

文章目录 一、公式二、代码三、区别四、结论 一、公式 归一化 X ′ x − m i n m a x − m i n X { x-min \above{1pt} max-min} X′max−minx−min​ X ′ ′ X ′ ∗ ( m a − m i ) m i X X * (ma-mi) mi X′′X′∗(ma−mi)mi 标准化 X ′ x − m e a n s t d X…

常见的C/C++开源数值计算库

1. Eigen Eigen 是一个线性算术的 C 模板库&#xff0c;包括&#xff1a;vectors, matrices, 以及相关算法。功能强大、快速、优雅以及支持多平台。 2. Blaze Blaze 是一个开源、高性能 C 数学库&#xff0c;用于密集和稀疏算术。凭借其最先进的 智能表达式模板 实现&#x…

选择智慧公厕解决方案,开创智慧城市公共厕所新时代

在城市建设和发展中&#xff0c;公厕作为一个不可或缺的城市基础设施&#xff0c;直接关系到城市形象的提升和居民生活品质的改善。然而&#xff0c;传统的公厕存在着管理不便、卫生状况差、设施陈旧等问题。为了解决这些困扰着城市发展的难题&#xff0c;智慧公厕源头厂家广州…

mysql 信号量(Semaphores)信息

以下是show ENGINE innodb status内容中信号量&#xff08;Semaphores&#xff09;的信息 ---------- SEMAPHORES ---------- OS WAIT ARRAY INFO: reservation count 103550558 OS WAIT ARRAY INFO: signal count 1874952750 RW-shared spins 0, rounds 581651603, OS waits …

视频监控系统/视频汇聚平台EasyCVR如何反向代理进行后端保活?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

【问题总结】级数的括号可以拆吗?

问题 今天在做题的时候发现&#xff0c;括号这个问题时常出现。Σun&#xff0c;Σvn&#xff0c;和Σ&#xff08;unvn&#xff09;&#xff0c;两个级数涉及到了括号增删&#xff0c;Σ(un-1un)&#xff0c;级数钟的前后项的合并也涉及到了括号增删。 总结 添括号定理&…

利用异常实现短期hook

场景1 调用目标call 需要跳过某些判断或者函数 场景2 目标call 只需要部分指令执行 大概实现技术 设置线程上下文设置drX寄存器 实现硬件执行断点 主动调用目标call 通过硬件断点获取寄存器或修改eip 以上实现不改变crc且不通过驱动实现。只对当前执行线程有效&#xff…

Android Termux安装MySQL,并使用cpolar实现公网安全远程连接[内网穿透]

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

2023-10-11 LeetCode每日一题()

2023-10-11每日一题 一、题目编号 2512. 奖励最顶尖的 K 名学生二、题目链接 点击跳转到题目位置 三、题目描述 给你两个字符串数组 positive_feedback 和 negative_feedback &#xff0c;分别包含表示正面的和负面的词汇。不会 有单词同时是正面的和负面的。 一开始&…

docker概念

docker 容器&#xff1a;就是提供在多台主机上运行的应用程序相同的运行环境。 docker的概念 是开源的容器&#xff0c;是由Go语言开发的&#xff0c;是容器里面运用的工具&#xff0c;他是一个轻量级的虚拟机&#xff0c;可以利用docker在多台主机上创建与运行容器。 docke…

全国工商注册数据库的作用

随着经济的发展和市场竞争的加剧&#xff0c;越来越多的人开始关注公司的工商信息。这些信息不仅可以帮助人们了解公司的基本情况&#xff0c;还可以为投资者、合作伙伴、员工等提供决策依据。 工商数据库提供了全国范围内企业的基本信息。这些信息包括企业的名称、统一社会信用…

2018架构真题案例(四十九)

某文件采用多级索引结构&#xff0c;磁盘大小4K字节&#xff0c;每个块号4字节&#xff0c;那么二级索引结果时&#xff0c;文件最大。 A、1024 B、1024*1024 C、2048*2048 D、4096*4096 答案&#xff1a;B 霍尔三维结构以时间堆、&#xff08;&#xff09;堆、知识堆组成…

聊聊Android签名检测7种核心检测方案详解

聊聊Android签名检测总结与反思 背景&#xff1a; 这篇文章只讲Android端签名检测&#xff0c;安卓发展到现在&#xff0c;因为国内环境没有谷歌市场&#xff0c;所以很多官方推荐的Api没法使用 &#xff0c;所以国内的签名检测方式也是“千奇百怪” 。发展至今每种方法都有一…

【ARM Coresight 系列文章 9 -- ETM 介绍 1】

文章目录 ARM Coresight ETM 介绍1.1.1 ARM Coresight ETM 版本介绍1.1.2 ARM Coresight 常见术语1.2 ARM Coresight ETM 常用寄存器介绍1.2.1 TRCVIIECTLR(ViewInst Include-Exclude Control Register)1.2.2 TRCVISSCTLR(ViewInst Start/Stop Processing Element Comparator C…

【ElasticSearch】深入探索 DSL 查询语法,实现对文档不同程度的检索,以及对搜索结果的排序、分页和高亮操作

文章目录 前言一、Elasticsearch DSL Query 的分类二、全文检索查询2.1 match 查询2.2 multi_match 查询 三、精确查询3.1 term 查询3.2 range 查询 四、地理坐标查询4.1 geo_bounding_box 查询4.2 geo_distance 查询 五、复合查询5.1 function score 查询5.2 boolean 查询 六、…