python模块之——openpyxl 处理xlsx/ xlsm文件

项目原因需要编辑excel文件,经过查询,最先尝试xlwt 、wlrd这个两个模块,但是很快发现这两个模块只能编辑xls文件,然而office07 之后的excel默认保存格式都是xlsx / xlsm,所以xlwt 、wlrd解决不了问题。后来发现openpyxl模块就是为处理 xlsx/xlsm/xltx/xltm而存在的,最终用该模块完美的解决的问题。但是请注意,openpyxl也只能处理xlsx、xlsm文件,对xls也只能改道之前提到的两个模块。

一、openpyxl模块介绍

Author: Eric Gazoni , Charlie Clark

网址:openpyxl.readthedocs.io/en/stable/

该模块有几个重要的概念:Workbooks、Sheets、Cells,通过这三个概念,就可以定位到最细的cell,并对其进行删除、修改、增加等操作。

二、安装

在cmd中 $ pip install openpyxl就可以完成

三、使用

1、创建新文件并编辑

import openpyxl
################
#创建一个新的workbook
wb=openpyxl.Workbook()
#创建一个worksheet
ws = wb.active
#插入sheet
ws1=wb.create_sheet("Mysheet") # insert at the end (default)
ws2 = wb.create_sheet("Mysheet", 0) # insert at first position
#对sheet2名进行修改
ws2.title = "New Title"
#获取一个sheet,使其可进行编辑,使用方式和字典使用一样
w2=wb["New Tile"] #这样就可以对sheet3编辑了
#改变sheet名的背景色
ws2.sheet_properties.tabColor = "1072BA"
#获取所有已经创建的sheetnames
wb.sheetnames
#遍历所有的sheet
for sheet in wb:
print(sheet.title)
##########################
#编辑处理cell的内容 (方法一)
ws1["A4"]="Hello"
#编辑处理cell的内容 (方法二)
ws1.cell(row=4,column=2,value=10)
#编辑处理cell的内容 (方法三)
ws1.cell(row=4,column=3).value=20
#Notes & Warning:
#When a worksheet is created in memory, it contains no cells. They are created when first accessed.
#When a worksheet is created in memory, it contains no cells. They are created when first accessed.
#Because of this feature, scrolling through cells instead of accessing them directly will create them all in memory, even if you don’t assign them a value. #Something like
for i in range(1,101):
for j in range(1,101):
ws.cell(row=i, column=j)
#will create 100x100 cells in memory, for nothing.
##########################
#处理多cell
cell_range=ws["A1":"C2"]
colC=ws["C"]
col_range=ws["C:D"]
row10=ws[10]
row_range=ws[3:6]
#遍历cell (按照rows遍历)
for row in ws.iter_rows(min_row=1,min_col=1,max_col=3,max_row=2):
````for cell in row:
```` print(cell)
<Cell Sheet1.A1>
<Cell Sheet1.B1>
<Cell Sheet1.C1>
<Cell Sheet1.A2>
<Cell Sheet1.B2>
<Cell Sheet1.C2>
#遍历cell (按照cols遍历)
for row in ws.iter_cols(min_row=1,min_col=1,max_col=3,max_row=2):
````for cell in row:
```` print(cell)
<Cell Sheet1.A1>
<Cell Sheet1.A2>
<Cell Sheet1.B1>
<Cell Sheet1.B2>
<Cell Sheet1.C1>
<Cell Sheet1.C2> wb.save("G:/TEMP/test.xlsx")

2.读取并编辑已经存在的文件

import openpyxl
FilePath="G:/TEMP"
FileName="test.xlsx"
wb=openpyxl.load_workbook(FilePath+"/"+FileName)
lisSheetName=wb.sheetnames
print(lisSheetName)
ws=wb[lisSheetName[1]]
#编辑处理cell的内容 (方法一)
ws["A4"]="Hello"
#编辑处理cell的内容 (方法二)
ws.cell(row=4,column=2,value=10)
#编辑处理cell的内容 (方法三)
ws.cell(row=4,column=3).value=20
wb.save(FilePath+"/"+FileName)

3. 附加

#在excel插入函数和公式
ws["D4"]="=SUM(1,1)"
ws["E4"]="=SUM(A4:D4)"
# 插入画图
#(略)

更详细可搜索openpyxl进入官方文档查询

openpyxl模块处理excel文件的更多相关文章

  1. 使用openpyxl模块将Excel中的数据导入数据库

    这里将不介绍openpyxl模块的详细操作. 主要就是记录一个使用openpyxl模块将Excel表格的数据导入数据库中的实例. from openpyxl import load_workbook ...

  2. python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  3. Xlrd模块读取Excel文件数据

    Xlrd模块使用 excel文件样例:

  4. Python模块学习之xlrd、xlutils、openpyxl 读写/追加Excel文件

    Python操作Excel的四个工具包 xlrd: 对Excel进行读相关操作,注意只能操作 .xls xlwt: 对Excel进行写相关操作,注意只能操作 .xls,且只能创建一个全新的Excel然 ...

  5. openpyxl模块(excel操作)

    openpyxl模块介绍 openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读 ...

  6. Python使用xlwt模块 操作Excel文件

    导出Excel文件     1. 使用xlwt模块 import xlwt import xlwt    # 导入xlwt # 新建一个excel文件 file = xlwt.Workbook() # ...

  7. python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据

    当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...

  8. Python使用openpyxl模块操作Excel表格

    ''' Excel文件三个对象 workbook: 工作簿,一个excel文件包含多个sheet. sheet:工作表,一个workbook有多个,表名识别,如"sheet1",& ...

  9. 基础补充:使用xlrd模块读取excel文件

    因为接口测试用例使用excel文件来维护的,所以有必要学习下操作excel的基本方法 参考博客:python 3 操作 excel 把自己练习的代码贴出来,是一些基本的操作,每行代码后面都加了注释. ...

随机推荐

  1. Centos7下命令笔记-ls

    ls命令大概是linux下最常用的命令之一,ls是list的缩写.因为linux目录或者文件记录的信息实在太多,所以默认ls只显示非隐藏的目录以及文件名.ls直接执行不加参数时显示本目录下的档案名. ...

  2. SqlServer 数据库负载均衡【转】

    负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作.共同负载.均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器. 1. ...

  3. fft蝶形算法的特点

  4. 一个苹果证书如何多次使用——导出p12文件[多台电脑使用]

    为什么要导出.p12文件 当我们用大于三个mac设备开发应用时,想要申请新的证书,如果在我们的证书里,包含了3个发布证书,2个开发证书,可以发现再也申请不了开发证书和发布证书了(一般在我们的证书界面中 ...

  5. lvs之 lvs+nginx+tomcat_1、tomcat_2+redis(lvs dr 模式)

    前提:已经安装好 lvs+nginx+tomcat_1.tomcat_2+redis环境 ,可参考 (略有改动,比如tomcat_1.tomcat_2安装在两台机器上,而不是单机多实例 ,自行稍稍变动 ...

  6. BZOJ3790:神奇项链

    浅谈\(Manacher\):https://www.cnblogs.com/AKMer/p/10431603.html 题目传送门:https://lydsy.com/JudgeOnline/pro ...

  7. xmldoc

    vmsConfig.js var loadXML = function(xmlString) { // 构建xmldoc对象 var xmlDoc = null; if (window.DOMPars ...

  8. VCS (版本控制系统)

    1.什么是VCS? 版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.版本控制系统不仅可以应用于软件源代码的文本文件, ...

  9. 事务之四:Spring事务--原理

    一.Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: ...

  10. Train-Alypay-Cloud:蚂蚁金融云知识点

    ylbtech-Train-Alypay-Cloud:蚂蚁金融云知识点 1.返回顶部 1. 1.数据库与缓存结合使用https://www.cloud.alipay.com/docs/2/47337 ...