openpyxl模块_Openpyxl让Excel飞(一)
openpyxl 库简介及安装
openpyxl是一个开源的Excel文件处理库,可以用于处理Excel 2010版及以后的文件(官网说法,实际好像2007版Excel文件也可以处理,只要是后缀名为.xlsx、.xlsm、xltx)。
基本上,使用openpyxl 可以进行Excel绝大部分操作。主要常用功能有以下:
新建、加载、保存xlsx表格
工作表sheet的操作
单元格操作
行列操作
格式设置
图表应用
打印设置
结合numpy或Pandas使用
openpyxl的安装,使用pip 进行安装即可,安装的命令如下:
pip install openpyxl
如果不太了解pip 安装python库,可以参考以下文章:
Python 库管家----pip
openpyxl Excel文件及sheet工作表操作
建议在Pycharm中尝试以下功能,新建一个python文件,并使用以下代码导入openpyxl库。
from openpyxl import Workbookfrom openpyxl import load_workbook #使用load_workbook需要用到这部分功能
新建表格(此时并未保存表格,wb为变量名)
wb = Workbook()
加载现有表格
wb = load_workbook('Excel name.xlsx')#如果Excel名前未加文件路径,则默认在相应python project路径下寻找同名表格加载#如果是加上路径,则是加载指定下路径的Excel表格
保存表格
wb.save('Excel name.xlsx')#如果需要更换位置保存,则在Excel名前加入路径,例如'C:\Excel name.xlsx'
将当前激活的sheet工作表定义为ws(变量名)
ws = wb.active#假设现在打开Excel name.xlsx是Sheet1处于编辑状态,则wb.active选择的是Sheet1#如果Sheet2处于编辑状态,则wb.active选择的是Sheet2
通过指定sheet工作表定义ws
ws = wb["Sheet2"]#将Sheet2定义为ws
创建sheet 工作表
ws = wb.create_sheet("NewSheet", 0)#括弧内0指创建的新工作表位置,0表示第一张sheet工作表。#如果有同名sheet,也会新建,但新建的sheet名后会加数字1,如NewSheet1
获取所有sheet工作表名
sheetname = wb.sheetnames#wb.sheetnames 可以获取表格wb中所有的sheet工作表。并储存为列表sheetname
通过指定sheetname 列表定义ws
sheetname = wb.sheetnamesws = wb[sheetname[0]]
修改sheet工作表名
ws.title = "UpdateTitle"#sheet名可以通过title属性进行更改
删除sheet工作表
wb.remove(ws)
更改sheet工作表栏颜色
ws.sheet_prperties.tabColor = "2A22AB"#2A22AB为十六进制数字,代表RGB三原色。
单元格操作
单元格赋值 (一)
ws['A1'] = 10 #在A1单元格输入数字10ws['A2'] = 'Trial' #在A2单元格输入文本'Trial'
单元格赋值 (二)
ws.cell(row =1, column = 2).value = "IT" #给第一行第二列赋值文本'IT'
单元格赋值 (三)
ws.cell(row=1, column=1, value='Trial') #给第一列第一行单元格赋值'Trial'
单元格赋值 (四)
ws.cell(2,1,99) #给第二行第一列单元格赋值99
获取单元格值(一)
cellvalue = ws['A1'].value #value 属性可以获取单元格的值,将'A1'单元格的值赋值给cellvalueprint(ws['A1']) #打印单元格信息,不是单元格的值print(cellvalue) #打印'A1'单元格值,下图为基于”单元格赋值(一)“代码结果
获取单元格值(二)
cellvalue = ws.cell(row=1,column=1).valueprint(ws.cell(row=1,column=1)) #打印单元格信息,不是单元格的值print(cellvalue) #打印第一行第一列单元格值,下图为基于”单元格赋值(三)“代码结果
获取单元格值(三)
cellvalue = ws.cell(2,1).valueprint(ws.cell(2,1)) #打印单元格信息,不是单元格的值print(cellvalue) #打印第二行第一列单元格值,下图为基于”单元格赋值(四)“代码结果
单元格输入公式
ws['A1'] = '=SUM(2,2)' #A1单元格输入Excel SUM函数,求2+2的和ws['A2'] = '=A1&"ABC"' #A2单元格输入Excel &函数,求A1单元格文本与“ABC”合并后结果
PS:如果打印有公式的单元格的值,只会是打印公式的内容,而不是公式计算出来的值,目前暂时还无法从程序中直接获取计算后的值。如打印上面例子中A1单元格的值,就还是公式内容。
获取单元格的所在行数
cellrow = cell.row
获取单元格的所在列数
cellcol = cell.column
获取单元格的所在Excel坐标
cellcoordinate = cell.coordinate
多个单元格赋值(一)
for i in range (1,6): for j in range (1,5): ws.cell(i,j).value = i+j #给从第一行到第五行中的第一列到第四列的单元格中赋值
#for x in range(m,n):是一个非常常用而且简单的循环语句,基本用法可以参照上面程序
多个单元格操作(二)----iter_rows函数
for row in ws.iter_rows(min_row=1, max_col=3, max_row=3): #定义行列范围 for cell in row: print(cell) #输出单元格信息 cell.value = cell.row + cell.column #将单元所在的行数与列数之和赋值给单元格
从打印的单元格信息可以看出,iter_rows函数是逐行处理数据,第一行的数据处理完后,再处理第二行。
多个单元格操作(三)----iter_cols函数
for col in ws.iter_cols(min_col=1, max_row=3, max_col=3): #定义行列范围 for cell in col: print(cell) #输出单元格信息 cell.value = cell.row + cell.column #将单元所在的行数与列数之和赋值给单元格
从打印的单元格信息可以看出,iter_cols函数是逐列处理数据,第一列的数据处理完后,再处理第二列。
实例
写一个简单的实例,创建一个Excel表格,然后在表格中分别创建三个sheet 工作表,并给sheet工作表中单元格赋值。以下是代码:
from openpyxl import Workbook #从openpyxl 库中导入Workbook模块import os #导入os 库,python标准库不需要安装wb = Workbook() #新建表格ws1 = wb.active #定义ws1ws1.title = "trial 1"for col in ws1.iter_cols(min_col=1, max_row=3, max_col=3): #定义行列范围 for cell in col: cell.value = cell.row #将单元所在的行数与列数之和赋值给单元格ws2 = wb.create_sheet("Trial 2", 1) #创建ws2for row in ws2.iter_rows(min_row=1, max_col=3, max_row=3): #定义行列范围 for cell in row: cell.value = cell.coordinate #将单元所在的坐标赋值给单元格ws3 = wb.create_sheet("Trial 3", 2) #创建ws3for i in range (1,6): for j in range (1,5): ws3.cell(i,j).value = i+j #给从第一行到第五行中的第一列到第四列的单元格中赋值wb.save('D:\Trial.xlsx') #保存表格os.startfile('D:\Trial.xlsx') #打开上一步保存的表格
To Be Continued
关注公众号”Start Python“,一起学习Python开发
openpyxl模块_Openpyxl让Excel飞(一)相关推荐
- 利用openpyxl模块来操作Excel
python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 之所以推荐两个库是因为这两个库分别操作的 ...
- [转载] python3.5 利用openpyxl模块来处理excel表
参考链接: Python | 使用openpyxl模块写入Excel文件 Python文件处理 首先,excel表格属于一种文件,处理它肯定伴随着文件的处理,那么,我们先来看看文件的处理方式: 删除某 ...
- openpyxl模块介绍 ——读取excel表格
import openpyxl#------------------------------------------------------------------------------------ ...
- python导入excel模块_python使用openpyxl模块操作excel
python中的openpyxl模块可以操作excel文件. 使用pip安装pip install openpyxl 支持流行的lxml库(如果已安装).这在创建大文件时特别有用. 为了能够将图像(j ...
- Openpyxl:读取/写入Excel文件的Python模块
Python openpyxl module is a native library to work with excel files. We can read excel files as well ...
- python中openpyxl模块对excel的处理学习(一)新建工作簿,工作表的创建与命名
openpyxl模块用于读写excel的xlsx等文件,不支持xls from openpyxl import Workbook, load_workbookdef openpyxl_test1(): ...
- 【script】python3中的docx、win32com和openpyxl模块
docx模块:对word文档的处理 读取docx文件 from docx import Document # word处理模块path = r"C:\Users\30797\Desktop\ ...
- smtplib + email 操作邮件 及 string.Template模板替换 + openpyxl模块 来实现个性化操作邮件相关
通过 smtplib模块 + emaill模块 来操作邮件 源代码如下: import smtplib #邮箱服务器 from email.mime.multipart import MIMEMult ...
- Python3 集成openpyxl 模块
openpyxl 模块简介: openpyxl 模块可以读写Excel 文件,包括xlsx.xlsm.xltx和xltm等格式 openpyxl 模块 安装 执行如下安装命令: pip install ...
最新文章
- chrome浏览器 新建 标签 页面 跳转到主页(或跳转到谷歌)
- 解决grub引导错误的问题
- python实现排序算法_python实现各种排序算法
- JVM运行参数_JVM内存模型_常用内存分析工具
- twisted系列教程五–改进twisted poetry client
- Redis08-事件
- 01.查找的基本概念
- mysql语句事务回滚_mysql语句,事务处理回滚的问题。
- 第一部分 线性表的链式存储(三)--静态链表
- 运维的日常:如果回到18岁,你还会选择运维行业么?
- Apex弹窗闪退报错问题解决方案清晰讲解(系统软件层面解决,已亲测可行)
- 2019年7月28日解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 00840
- Python+PyCharm+PyQt5抓取链家二手房信息
- 安卓比IOS好的12个原因
- Egyptian Collegiate Programming Contest (ECPC 2015)
- java一维数组输入整数n_用键盘接受输入的整数,将输入的整数保存到一个一维数组,然后输出最大值...
- Huawei/华为WATCH GT2e智能手表,包邮免费送!
- python入门的详细答案_第11篇参考答案:Python入门经典习题题解
- 怕你不信,100行极简原生html现实3D雪花飘飘动效
- 开启十日内 阿维塔11首批用户锁单突破5000台