openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只支持读或者写Excel一种功能。
要对excel进行操作,必须要有能打开excel的软件,这里以wps为例

一.获取wps的安装包并安装

二.excel文档的基本定义

1) 工作薄(workbook):一个EXCEL文件就称为一个工作薄,一个工作薄中可以包含若干张工作表。
2) 工作表(sheet):工作薄中的每一张表格称为工作表,每张工作表都有一个标签,默认为sheet1\sheet2\sheet3来命名,(一个工作 薄默认为由3个工作表组成)
3) 活动表(active sheet):指当前正在操作的工作表
4) 行(row): 工作表中的每一行行首数字(1、2、3、)称为行标题;一张工作表最多有65536行
5) 列(column): 列标题:工作表中每一列列首的字母(A、B、C)称为列标题;一张工作表最多有256列
6)单元格(cell): 工作表的每一个格称为单元格

三.导入openpyxl模块

在pycharm下,执行import openpyxl,发现会报错,这时我们将鼠标放在openpyxl上,按下alt + enter,选择第一个进行安装。

出现下图,说明安装成功。

如果安装失败,就需要到第三方库进行安装。

pip3 install openpyx

四.openpyxl基本用法

1.创建对象

打开或者创建一个Excel需要创建一个Workbook对象
获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象
如果要获取表中的数据,那么得到Worksheet对象以后再从中获取代表单元格的Cell对象

Workbook对象
  一个Workbook对象代表一个Excel文档,因此在操作Excel之前,都应该先创建一个Workbook对象。对于创建一个新的Excel文档,直接进行Workbook类的调用即可,对于一个已经存在的Excel文档,可以使用openpyxl模块的load_workbook函数进行读取,该函数包涵多个参数,但只有filename参数为必传参数。filename 是一个文件名,也可以是一个打开的文件对象。
  

import openpyxl
wb = openpyxl.Workbook('Book1.xlsx')
wb1 = openpyxl.load_workbook('Book2.xlsx')print(wb)
print(type(wb))
print(wb1)
print(type(wb1))

  

2.Workbook对象属性(工作簿操作)

sheetnames:获取工作簿中的表(列表)
active:获取当前活跃的Worksheet
worksheets:以列表的形式返回所有的Worksheet(表格)
read_only:判断是否以read_only模式打开Excel文档
encoding:获取文档的字符集编码
properties:获取文档的元数据,如标题,创建者,创建日期等

import openpyxlwb = openpyxl.load_workbook('Book2.xlsx')
print(wb.sheetnames)
print(wb.active)
print(wb.worksheets)
print(wb.read_only)
print(wb.encoding)
print(wb.properties)  ##运行结果最后三行属于该属性

excel信息

运行结果

3.Worksheet,Cell对象(工作表操作,单元格)

Worksheet:
title:表格的标题
max_row:表格的最大行
min_row:表格的最小行
max_column:表格的最大列
min_column:表格的最小列
rows:按行获取单元格(Cell对象) - 生成器
columns:按列获取单元格(Cell对象) - 生成器
values:按行获取表格的内容(数据) - 生成器

Cell:

row:单元格所在的行
column:单元格坐在的列
value:单元格的值
coordinate:单元格的坐标

import openpyxlwb = openpyxl.load_workbook('Book2.xlsx')
##选择要操作的工作表, 返回工作表对象
sheet = wb['排序商品信息']
#获取工作表的名称
print(sheet.title)
# 获取工作表中行和列的最值
print(sheet.max_column)
print(sheet.max_row)
print(sheet.min_column)
print(sheet.min_row)
##修改表的名称
sheet.title = 'sheet1'
print(sheet.title)
# 返回指定行指定列的单元格信息
print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']
print(cell)
print(cell.row, cell.column, cell.value,cell.coordinate)

运行前excel信息

4.访问单元格的所有信息

import openpyxlwb = openpyxl.load_workbook('Book2.xlsx')
##选择要操作的工作表, 返回工作表对象
sheet = wb['排序商品信息']
for row in sheet.rows:# 循环遍历每一个单元格for cell in row:# 获取单元格的内容print(cell.value, end=',')print()

import openpyxlwb = openpyxl.load_workbook('Book2.xlsx')
##选择要操作的工作表, 返回工作表对象
sheet = wb['排序商品信息']
for row in sheet.values:print(*row)

5.应用案例

需求:
商品名称 商品价格 商品数量
- 定义一个函数, readwb(wbname, sheetname=None)
- 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;
- 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量
- 所有信息, 并将其保存到数据库中;

import osimport 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="排序商品信息")

原excel信息

新excel信息

python之openpyxl模块(excel管理)相关推荐

  1. Python使用openpyxl模块读写excel文件

    Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...

  2. [转载] Python利用openpyxl模块读取excel文件内容

    参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...

  3. 使用python中openpyxl模块操作excel文件,计算单元格分子式的相对分子质量(一)

    背景:本人是力学专业博士,从事分子动力学模拟,最近需要对结果进行数据分析,其中一项就是计算每一时刻的不同分子式的相对分子质量并将最大相对分子质量输出,换出曲线图.已知,分子式数据均保存在excel文件 ...

  4. python使用openpyxl处理excel表格数据

    python使用openpyxl处理excel表格数据 前言 一.安装openpyxl包 二.读取excel数据 1. 获取excel表格的页码 2. 获取excel表格某一行的数据 3. 获取exc ...

  5. Python使用openpyxl读写excel文件

    Python使用openpyxl读写excel文件 Python使用openpyxl读取excel文件中数据 Python使用openpyxl往excel文件中写入数据 Python使用openpyx ...

  6. python中openpyxl模块对excel的处理学习(一)新建工作簿,工作表的创建与命名

    openpyxl模块用于读写excel的xlsx等文件,不支持xls from openpyxl import Workbook, load_workbookdef openpyxl_test1(): ...

  7. python的openpyxl模块下载_python解析.xls/.xlsx文件–openpyxl模块(第三方)

    围观人数: 7 标签:book   set   tle   命令行   文件中   不能   charm   读取   pen 第一part:Excel文件的介绍 Microsoft Excel是Mi ...

  8. Python 中 Openpyxl 模块的使用

    在 Python 中处理Excel 文件并没有想象中的那么难.在本教程中,我们将学习如何使用 Python创建.读取和修改.xlsx 文件. 简介 Xlsx 文件是技术领域中使用最广泛的文件.数据科学 ...

  9. Python之openpyxl处理excel数据

    1.前言 在测试工作中,我们不可避免的就是跟测试数据打交道,那么说到数据,我们又不可避免的要跟excel打交道.在工作中,用excel存储测试数据以及测试结果是非常非常常见的.其实,python中有好 ...

最新文章

  1. linux命令2--cd和pwd
  2. android代码记录日期,Android日期和时间选择器实现代码
  3. 怎么将零件整合到一起_Fraunhofer ILT用于大型零件3D打印的“边飞行边加工”的LPBF概念...
  4. 京东WebService调用 求助~~~~~
  5. propertysource注解_Java开发必须掌握的 20+ 种 Spring 常用注解
  6. Mongodb -(3) replica set+sharding
  7. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
  8. Quartz学习总结(1)——Spring集成Quartz框架
  9. 论文笔记:公钥密码算法的硬件实现及侧信道攻击研究(RSA部分)
  10. 账务实时交易系统设计思考
  11. “属你最牛” | 树莓派百变打印机
  12. 数据库实验第七周【集合查询数据更新】
  13. 【实用算法教学】——Apriori算法,教你使用亲和性分析方法推荐电影
  14. 安卓实例开发录音应用!Android架构组件Room功能详解,面试真题解析
  15. 论文阅读——Deep 3D Portrait from a Single Image(CVPR2020)
  16. c语言中文网严长生,2.shell语法:shell变量定义和使用
  17. Windows环境下Redis安装操作步骤
  18. c语言光敏程序代码,ADC实验之光敏传感器
  19. 洛谷 P1618 STL全排列方法
  20. 【观点】“马云:金融是要为外行人服务,这个观点其实并不新鲜

热门文章

  1. response.getWriter()
  2. xcopy忽略错误复制文件夹并排除某个文件夹的名称
  3. 基于QT搭建的网易云音乐
  4. 云服务器和虚拟主机有什么区别?区别大吗?
  5. java 变量共享_Java并发编程之共享变量
  6. 复数与三角函数的转换
  7. 关于 字号、PX像素、PT点数、em、CM厘米、MM毫米之间的换算
  8. Trade and the world economy -- 贸易与世界经济
  9. SQL中一些实用的快捷键
  10. Bugku - Misc图穷匕见 - Writeup