Python中进行Excle操作
Python中进行Excle操作
一.excel文档的基本定义
- 工作薄(workbook)
- 工作表(sheet)
- 活动表(active sheet)
- 行(row): 1,2,3,4,5,6……..
- 列(column): A,B,C,D……..
- 单元格(cell): B1, C1
二.openpyxl
模块的使用
1.openpuxl
的下载
Python 没有自带openpyxl
,所以必须安装。
pip3 install openpyxl
2. Excel 文档格式
openpyxl
只支持较新版本的Excle格式,即‘.xlsx’, ‘.xlsm’, ‘.xltx’, ‘.xltm’
建立一个.xlsx结尾的excle文档,如example.xlsx
3. openpyxl
模块的使用
import openpyxl
# 1. 打开一个excel文档, class 'openpyxl.workbook.Workbook'实例化出来的对象
wb = openpyxl.load_workbook('Book1.xlsx')
# print(wb, type(wb))
# 获取当前工作薄里所有的工作表, 和正在使用的表;
print(wb.sheetnames)
print(wb.active)# 2. 选择要操作的工作表, 返回工作表对象
sheet = wb['Sheet1']
# 获取工作表的名称
print(sheet.title)
# 3. 返回指定行指定列的单元格信息
print(sheet.cell(row=1, column=2).value)cell = sheet['B1']
print(cell)
print(cell.row, cell.column, cell.value)# 4. 获取工作表中行和列的最大值
print(sheet.max_column)
print(sheet.max_row)
sheet.title = 'Sheet1'
print(sheet.title)
# 5. 访问单元格的所有信息
print(sheet.rows) # 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问.
# 循环遍历每一行
for row in sheet.rows:# 循环遍历每一个单元格for cell in row:# 获取单元格的内容print(cell.value, end=',')print()
# 6. 保存修改信息
wb.save(filename='Book1.xlsx')
三.excel表内容的排序
# 需求:
商品名称 商品价格 商品数量- 定义一个函数, readwb(wbname, sheetname=None)- 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;- 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量- 所有信息, 并将其保存到数据库中;
import openpyxldef readwb(wbname, sheetname=None):# 打开工作薄wb = openpyxl.load_workbook(wbname)# 获取要操作的工作表if not sheetname:sheet = wb.activeelse:sheet = wb[sheetname]# 获取商品信息保存到列表中#[ ['name', price, count]## ]all_info = []for row in sheet.rows:child = [cell.value for cell in row]all_info.append(child)return sorted(all_info, key=lambda item: item[1])def save_to_excel(data, wbname, sheetname='sheet1'):"""将信息保存到excel表中;[[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]"""print("写入Excel[%s]中......." %(wbname))# 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象wb = openpyxl.Workbook()# 修改当前工作表的名称sheet = wb.active# 修改工作表的名称sheet.title = sheetnamefor row, item in enumerate(data): # 0 [' BOOK', 50, 3]for column, cellValue in enumerate(item): # 0 ' BOOK'sheet.cell(row=row+1, column=column+1, value=cellValue)# ** 往单元格写入内容# sheet.cell['B1'].value = "value"# sheet.cell(row=1, column=2, value="value")# 保存写入的信息wb.save(filename=wbname)print("写入成功!")data = readwb(wbname='Book1.xlsx')
save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")
排序前:
排序后:
Python中进行Excle操作相关推荐
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- python中二进制文件_Python学习基础篇 -6: Python中的文件操作
前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...
前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 .文件有有什么用 文件可以看作一个仓库, ...
- Python中的文件操作和异常
Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...
- Python中的序列操作
Python中的序列操作 分类: python undefined 官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-ty ...
- python36_第36 p,就这几个方法,Python中文件的操作
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...
- python中numpy矩阵运算操作大全(非常全)!
python中numpy矩阵运算操作大全(非常全) //2019.07.10晚 python矩阵运算大全 1.矩阵的输出形式: 对于任何一个矩阵,python输出的模板是: import numpy ...
- 使用SQL数据库在Python中进行CRUD操作
目录 介绍 背景 在Visual Studio中创建一个Python项目 在SQL中创建数据库和表 为数据库创建配置文件 将Python软件包安装为"Pypyodbc" 创建一个连 ...
最新文章
- 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | Instrumentation 源码分析 )
- Java版的防抖(debounce)和节流(throttle)
- samba 服务
- linux suse 安装redis,在openSuse linux上Redis安装简单步骤
- hdu 1047 Integer Inquiry
- css -- 两种方法实现流式布局
- java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园
- ActiveMQ-为什么需要消息中间件及优缺点
- 写给 3 年内程序开发者的一封信
- Python学习入门基础教程(learning Python)--5 Python文件处理
- android框架连接mysql_三层架构 android访问MSSQL数据库 程序 (服务器端)
- 正则表达式在 ES2018 中的新写法
- linux 如何查看进程端口号,在linux中查看进程占用的端口号
- Cisco路由器密码重置
- 数据库中自然连接与内连接的区别
- Lipschitz continuity
- 软件工程师的工作经验总结
- 基于Go语言Revel+Layui的OA办公系统
- 怎么在线给pdf加盖电子公章
- Web缓存中毒(web cache poisoning)学习笔记
热门文章
- HarmonyOS应用开发第一次培训
- [Win11] ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块 Conda无法激活环境
- 史上最全的Git使用手册
- 高通骁龙平台芯片处理器(SoC)指南
- 天气预报显示服务器拒绝访问,天气预报
- 使用SCP传输文件报错:ssh: connect to host xx.xx.xx.xx port 22: Connection refusedlost connection
- 微信聊天新技能!微信聊天彩色字体!个性炫酷~
- Python爬虫HTTP异常:rllib.error.HTTPError: HTTP Error 418,伪装User-Agent以及fake-useragent插件的妙用
- HTML5七夕情人节表白网页制作【圣诞雪花飘落】HTML+CSS+JavaScript
- 计算机二进制m g t关系,计算机中容量单位B、KB、MB、GB和TB的关系