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飞(一)相关推荐

  1. 利用openpyxl模块来操作Excel

    python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 之所以推荐两个库是因为这两个库分别操作的 ...

  2. [转载] python3.5 利用openpyxl模块来处理excel表

    参考链接: Python | 使用openpyxl模块写入Excel文件 Python文件处理 首先,excel表格属于一种文件,处理它肯定伴随着文件的处理,那么,我们先来看看文件的处理方式: 删除某 ...

  3. openpyxl模块介绍 ——读取excel表格

    import openpyxl#------------------------------------------------------------------------------------ ...

  4. python导入excel模块_python使用openpyxl模块操作excel

    python中的openpyxl模块可以操作excel文件. 使用pip安装pip install openpyxl 支持流行的lxml库(如果已安装).这在创建大文件时特别有用. 为了能够将图像(j ...

  5. Openpyxl:读取/写入Excel文件的Python模块

    Python openpyxl module is a native library to work with excel files. We can read excel files as well ...

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

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

  7. 【script】python3中的docx、win32com和openpyxl模块

    docx模块:对word文档的处理 读取docx文件 from docx import Document # word处理模块path = r"C:\Users\30797\Desktop\ ...

  8. smtplib + email 操作邮件 及 string.Template模板替换 + openpyxl模块 来实现个性化操作邮件相关

    通过 smtplib模块 + emaill模块 来操作邮件 源代码如下: import smtplib #邮箱服务器 from email.mime.multipart import MIMEMult ...

  9. Python3 集成openpyxl 模块

    openpyxl 模块简介: openpyxl 模块可以读写Excel 文件,包括xlsx.xlsm.xltx和xltm等格式 openpyxl 模块 安装 执行如下安装命令: pip install ...

最新文章

  1. chrome浏览器 新建 标签 页面 跳转到主页(或跳转到谷歌)
  2. 解决grub引导错误的问题
  3. python实现排序算法_python实现各种排序算法
  4. JVM运行参数_JVM内存模型_常用内存分析工具
  5. twisted系列教程五–改进twisted poetry client
  6. Redis08-事件
  7. 01.查找的基本概念
  8. mysql语句事务回滚_mysql语句,事务处理回滚的问题。
  9. 第一部分 线性表的链式存储(三)--静态链表
  10. 运维的日常:如果回到18岁,你还会选择运维行业么?
  11. Apex弹窗闪退报错问题解决方案清晰讲解(系统软件层面解决,已亲测可行)
  12. 2019年7月28日解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 00840
  13. Python+PyCharm+PyQt5抓取链家二手房信息
  14. 安卓比IOS好的12个原因
  15. Egyptian Collegiate Programming Contest (ECPC 2015)
  16. java一维数组输入整数n_用键盘接受输入的整数,将输入的整数保存到一个一维数组,然后输出最大值...
  17. Huawei/华为WATCH GT2e智能手表,包邮免费送!
  18. python入门的详细答案_第11篇参考答案:Python入门经典习题题解
  19. 怕你不信,100行极简原生html现实3D雪花飘飘动效
  20. 开启十日内 阿维塔11首批用户锁单突破5000台

热门文章

  1. 【C语言】如何安装CLion并在CLion中Run一个程序
  2. docker~从Dockerfile到Container的过程(终于算是OK了)
  3. MySQL的几个character_set变量的说明
  4. Android内存泄漏分析及调试
  5. 一位老工程师的忠告,切记!
  6. 10 个利用Eclipse调试Java的常见技巧
  7. 【转载】【程序员练级】提高英语阅读水平经验分享上篇
  8. 屏幕最左上角的 飞秋官方下载 字符
  9. 飞鸽传书2012是否发布了?
  10. 刚刚看到网友的签名 飞秋官网下载