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 浏览器中的一个插件,实现简单的浏览器操 作的录制与回…

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…

探索 Redis 与 MySQL 的双写问题

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

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

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

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

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

利用异常实现短期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…

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;所以国内的签名检测方式也是“千奇百怪” 。发展至今每种方法都有一…

【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 查询 六、…

WorkPlus一站式解决方案,助力企业构建统一门户系统

在信息爆炸的时代&#xff0c;企业管理面临着海量的数据和各类业务应用的复杂性。如何实现信息的井然有序、高效管理&#xff0c;成为企业发展的关键。WorkPlus作为领先的品牌&#xff0c;致力于打造统一门户系统&#xff0c;为企业提供全方位的服务和解决方案。本文将以知乎的…

广州华锐互动:候车室智能数字孪生系统实现交通信息可视化

随着科技的不断发展&#xff0c;数字化技术在各个领域得到了广泛的应用。智慧车站作为一种新型的交通服务模式&#xff0c;通过运用先进的数字化技术&#xff0c;为乘客提供了更加便捷、舒适的出行体验。 将智慧车站与数字孪生大屏结合&#xff0c;可以将实际现实世界的实体车站…

java 无感hook实现(修改jdk)

背景 1 工作需要&#xff0c;需要修改一个java的程序逻辑&#xff0c;之前都是用的frida修改的&#xff0c;但是现在的工作场景&#xff0c;重视效率&#xff0c;所以frida这种重工具被pass了&#xff0c;只能重新选其他工具&#xff0c;初始的时候是想用java本身的一些修改工…

纸、纸板和纸制品 有效回收组分的测定

声明 本文是学习GB-T 42944-2023 纸、纸板和纸制品 有效回收组分的测定. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件描述了纸、纸板和纸制品中有效回收组分的测定方法。 本文件适用于各种纸、纸板和纸制品&#xff0c;也适用于铝箔…

微信小程序通过 movable-area 做一个与vuedraggable相似的上下拖动排序控件

因为只是做个小案例 我就直接代码写page页面里了 其实很简单 组件稍微改一下就好了 wxss /* 设置movable-area的宽度 */ .area{width: 100%; }/* a b c 每条元素的样式 */ movable-view {width: 100%;background-color: red;height: 40px;line-height: 40px;color: #FFFFFF;tex…

day

#include <iostream> using namespace std; class Per {//算术运算符friend const Per operator(const Per &k1,const Per &k2);friend const Per operator-(const Per &k1,const Per &k2);friend const Per operator*(const Per &k1,const Per &…

3ds Max渲染太慢?创意云“一键云渲染”提升3ds Max渲染体验

&#xfeff;在数字艺术设计领域&#xff0c;3ds Max是广泛使用的三维建模和渲染软件之一。然而&#xff0c;许多用户都面临着一个共同的问题&#xff1a;渲染速度太慢。渲染一帧画面需要耗费数小时&#xff0c;让人无法忍受。除了之前给大家介绍的几种解决方法外&#xff1a; …

Vue3中reactive, onMounted, ref,toRaw,conmpted 使用方法

import { reactive, onMounted, ref,toRaw,conmpted } from vue; vue3中 reactive &#xff0c;ref &#xff0c; toRaw&#xff0c;watch&#xff0c;conmpted 用法 toRaw 返回原响应式对象 用法&#xff1a; const rowList toRaw(row) reactive:ref: ref和reactive都是V…