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操作相关推荐

  1. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  2. python中二进制文件_Python学习基础篇 -6: Python中的文件操作

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...

  3. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  4. python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 .文件有有什么用 文件可以看作一个仓库, ...

  5. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  6. Python中的序列操作

    Python中的序列操作 分类: python undefined 官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-ty ...

  7. python36_第36 p,就这几个方法,Python中文件的操作

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...

  8. python中numpy矩阵运算操作大全(非常全)!

    python中numpy矩阵运算操作大全(非常全) //2019.07.10晚 python矩阵运算大全 1.矩阵的输出形式: 对于任何一个矩阵,python输出的模板是: import numpy ...

  9. 使用SQL数据库在Python中进行CRUD操作

    目录 介绍 背景 在Visual Studio中创建一个Python项目 在SQL中创建数据库和表 为数据库创建配置文件 将Python软件包安装为"Pypyodbc" 创建一个连 ...

最新文章

  1. 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | Instrumentation 源码分析 )
  2. Java版的防抖(debounce)和节流(throttle)
  3. samba   服务
  4. linux suse 安装redis,在openSuse linux上Redis安装简单步骤
  5. hdu 1047 Integer Inquiry
  6. css -- 两种方法实现流式布局
  7. java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园
  8. ActiveMQ-为什么需要消息中间件及优缺点
  9. 写给 3 年内程序开发者的一封信
  10. Python学习入门基础教程(learning Python)--5 Python文件处理
  11. android框架连接mysql_三层架构 android访问MSSQL数据库 程序 (服务器端)
  12. 正则表达式在 ES2018 中的新写法
  13. linux 如何查看进程端口号,在linux中查看进程占用的端口号
  14. Cisco路由器密码重置
  15. 数据库中自然连接与内连接的区别
  16. Lipschitz continuity
  17. 软件工程师的工作经验总结
  18. 基于Go语言Revel+Layui的OA办公系统
  19. 怎么在线给pdf加盖电子公章
  20. Web缓存中毒(web cache poisoning)学习笔记

热门文章

  1. HarmonyOS应用开发第一次培训
  2. [Win11] ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块 Conda无法激活环境
  3. 史上最全的Git使用手册
  4. 高通骁龙平台芯片处理器(SoC)指南
  5. 天气预报显示服务器拒绝访问,天气预报
  6. 使用SCP传输文件报错:ssh: connect to host xx.xx.xx.xx port 22: Connection refusedlost connection
  7. 微信聊天新技能!微信聊天彩色字体!个性炫酷~
  8. Python爬虫HTTP异常:rllib.error.HTTPError: HTTP Error 418,伪装User-Agent以及fake-useragent插件的妙用
  9. HTML5七夕情人节表白网页制作【圣诞雪花飘落】HTML+CSS+JavaScript
  10. 计算机二进制m g t关系,计算机中容量单位B、KB、MB、GB和TB的关系