openpyxl模块处理excel文件
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文件的更多相关文章
- 使用openpyxl模块将Excel中的数据导入数据库
这里将不介绍openpyxl模块的详细操作. 主要就是记录一个使用openpyxl模块将Excel表格的数据导入数据库中的实例. from openpyxl import load_workbook ...
- python使用xlrd模块读写Excel文件的方法
本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...
- Xlrd模块读取Excel文件数据
Xlrd模块使用 excel文件样例:
- Python模块学习之xlrd、xlutils、openpyxl 读写/追加Excel文件
Python操作Excel的四个工具包 xlrd: 对Excel进行读相关操作,注意只能操作 .xls xlwt: 对Excel进行写相关操作,注意只能操作 .xls,且只能创建一个全新的Excel然 ...
- openpyxl模块(excel操作)
openpyxl模块介绍 openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读 ...
- Python使用xlwt模块 操作Excel文件
导出Excel文件 1. 使用xlwt模块 import xlwt import xlwt # 导入xlwt # 新建一个excel文件 file = xlwt.Workbook() # ...
- python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据
当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...
- Python使用openpyxl模块操作Excel表格
''' Excel文件三个对象 workbook: 工作簿,一个excel文件包含多个sheet. sheet:工作表,一个workbook有多个,表名识别,如"sheet1",& ...
- 基础补充:使用xlrd模块读取excel文件
因为接口测试用例使用excel文件来维护的,所以有必要学习下操作excel的基本方法 参考博客:python 3 操作 excel 把自己练习的代码贴出来,是一些基本的操作,每行代码后面都加了注释. ...
随机推荐
- SqlServer 数据表数据移动
描述:将Test1表中的数据放到Test2表中 1.Test2表不存在 select A,B,C insert into Test2 from Test1 select * into Test2 fr ...
- DbEntry 默认 主键ID为long
DbEntry 默认 主键ID为long,如果自己表中的主键ID为int,可以通过以下方式修改: public class Company :DbObjectModel<Company,int& ...
- 理解javascript中的with关键字
说起js中的with关键字,很多小伙伴们的第一印象可能就是with关键字的作用在于改变作用域,然后最关键的一点是不推荐使用with关键字.听到不推荐with关键字后,我们很多人都会忽略掉with关键字 ...
- 程序4-3 umask函数实例
//http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...
- win7系统清除USBSTOR记录
方法一 1.Win+R,出现运行窗口,如图所示: 2.在输入框中输入“regedit”,如图所示: 3.进入后,点击编辑-查找,查找输入框中输入“USBSTOR”(为了加快查找速度,可以只选择“项”) ...
- erlang的tcp服务器模板
改来改去,最后放github了,贴的也累,蛋疼 还有一个tcp批量客户端的,也一起了 大概思路是 混合模式 使用erlang:send_after添加recv的超时处理 send在socket的opt ...
- fineUI表格控件各属性说明
最近在新的公司后台用fineUI,所以也稍微总结一下表格的一些属性,希望对刚入手的人有些帮助: AllowPaging 允许分页,为true时表示允许分页,表格下方会出现分页工具栏: PageSize ...
- Java-Maven-Runoob:Maven POM
ylbtech-Java-Maven-Runoob:Maven POM 1.返回顶部 1. Maven POM POM( Project Object Model,项目对象模型 ) 是 Maven 工 ...
- FusionCharts simple demo for (html+js、APS.NET Webform、MVC)
做GIS或其他内部数据统计项目的应该对FusionCharts也不会太陌生,简单易用已无需多说什么了,只是有时候框架不同,实现起来也稍有差异 引用dll调用FusionCharts类的静态方法Rend ...
- 分析java类的静态成员变量初始化先于非静态成员变量
依上图中当class字节码文件被jvm虚拟机加载到内存中依次经过 连接 验证:对字节码进行验证 准备:给静态变量分配内存并赋予变量类型各自的默认值(注:基本类型为0或false,对象为null,sta ...