详解Python操作Excel之openpyxl
作者:黑伴白 发布时间:2021-10-13 05:13:21
Python操作Excel之openpyxl
openpyxl是一个Python库,用来读写Excel2010 xlsx/xlsm/xltx/xltm类型文件。
openpyxl不能操作早期的xls格式的Excel文件,可以使用xlwings等其他库。
openpyxl是一个非标准的库,需要自行安装:
pip install openpyxl
前提
既然要操作Excel,那么前提我们对Excel要有一个基本的了解,比如:
一个Excel工作簿(workbook)由一个或多个工作表(sheet组成),一个工作表(sheet)中又包含多个行(row)和列(column),每一行(row)或每一列(column)又是由多个单元格(cell)组成
创建
from openpyxl import Workbook
# 创建一个工作簿对象
wb = Workbook()
# 创建一个名为first的sheet页 [第二个参数可以指定索引,即创建sheet的位置]
ws = wb.create_sheet('first')
# 将创建的工作簿保存为Mytest.xlsx
wb.save('Eric_01.xlsx')
# 最后关闭文件
wb.close()
Workbook对象提供了很多属性和方法,其中,大部分方法都与sheet有关
部分属性如下:
active
:获取当前活跃的Worksheetworksheets
:以列表的形式返回所有的Worksheet(表格)read_only
:判断是否以read_only模式打开Excel文档encoding
:获取文档的字符集编码properties
:获取文档的元数据,如标题,创建者,创建日期等sheetnames
:获取工作簿中的表(列表)
部分方法如下:
get_sheet_names
:获取所有表格的名称(新版已经不建议使用,通过Workbook的sheetnames属性即可获取)get_sheet_by_name
:通过表格名称获取Worksheet对象(新版也不建议使用,通过Worksheet[‘表名’]获取)get_active_sheet
:获取活跃的表格(新版建议通过active属性获取)remove_sheet
:删除一个表格create_sheet
:创建一个空的表格copy_worksheet
:在Workbook内拷贝表格
读取
from openpyxl import load_workbook
# openpyxl.load_workbook()打开已有工作簿
wb = load_workbook('Eric.xlsx')
# 打印工作簿中存在的工作表名称
print(wb.sheetnames)
# 根据名称获取工作表
sheet = wb['sheet1']
# 如果只有一个工作表也可以如下
sheet = wb.active
# 读取表格内容所在范围
sheet.dimensions
# 获取单元格内容
# 指定坐标
cell = sheet['A1']
# 指定行列
cell = sheet.cell(row=3, column=4)
# 打印单元格的值
print(cell.value)
# 获取单元格的行、列、坐标
print(cell.row, cell.column, cell.coordinate)
# 获取范围单元格的值
# 指定坐标范围
cells = sheet['A1':'C3']
# 指定列范围
cells = sheet['A:C'] # cells = sheet['A']
# 指定行范围
cells = sheet[2:5] # cells = sheet[3]
# 遍历获取单元格的值
for cell in cells:
print(cell.value)
# 特定范围
for row in sheet.iter_rows(min_row = 1, max_row = 10
min_col = 1, max_col = 26):
print(row)
# 遍历获取单元格的值
for cell in row:
print(cell.value)
# 读取所有行
for row in sheet.rows:
print(row)
来源:https://blog.csdn.net/weixin_49192027/article/details/122465045


猜你喜欢
- 案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据)import urllib.request# 1
- Vue3-KeepAlive,多个页面使用keepaliveVue3的生命周期未添加keepAlive的生命周期beforeCreate=&
- 首先来看一个例子,正常情况下我们定义并且实例一个类如下class Foo(object):def __init__(self):  
- 一对多(ForeignKey)class ForeignKey(ForeignObject): def __init__(sel
- 决策树也是有监督机器学习方法。 电影《无耻混蛋》里有一
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。 JSON
- 模块概述如果说模块是按照逻辑来组织 Python 代码的方法, 那么文件便是物理层上组织模块的方法。 因此, **一个文件被看作是一个独立模
- 网上广泛流传的取 object 的绝对位置的做法是:var getAbsPos = function(pTar
- 1、es的批量插入这是为了方便后期配置的更改,把配置信息放在logging.conf中用elasticsearch来实现批量操作,先安装依赖
- 表空间概述Oracle的表空间属于Oracle中的存储结构,是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最
- 加载模型并查看网络加载模型,以vgg19为例。打开终端> pythonPython 3.7.2 (tags/v3.7.2:9a3ffc
- 项目介绍背景:DC竞赛比赛项目,运用回归模型进 * 价预测。数据介绍:数据主要包括2014年5月至2015年5月美国King County的房
- 什么是数据库?数据库是存放数据的“仓库”, * 对此形象地描述为“电子化文件柜
- 神经网络一般用GPU来跑,我们的神经网络框架一般也都安装的GPU版本,本文就简单记录一下GPU使用的编写。GPU的设置不在model,而是在
- 有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔x步进行一次采样,这就要求对一个list每隔x步进行一次截取,再从截取到的不同的子集
- 一、安装1、安装git Windows 客户端—GitHub Desktop具有git功能的Windows客户端软件有很
- 装饰器本质是一个接受参数为函数的函数。作用:为一个已经实现的方法添加额外的通用功能,比如日志记录、运行计时等。举例1.不带参数的装饰器,不用
- Django 中的时区在现实环境中,存在有多个时区。用户之间很有可能存在于不同的时区,并且许多国家都拥有自己的一套夏令时系统。所以如果网站面
- vue实现一个分页组件vue-paginaitonvue使用了一段时间的感触就是,我再也不想直接操作DOM了。数据绑定式的编程体验真是好。实
- PHP原型模式Prototype Pattern是什么原型模式是一种创建型模式,它可以通过复制现有对象来创建新的对象,而无需知道具体的创建过