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 把自己练习的代码贴出来,是一些基本的操作,每行代码后面都加了注释. ...
随机推荐
- Linq:从XML获取数据
实体类 public class Customer { public string CustomerID { get; set; } public string CompanyName { get; ...
- .NET系统框架
本书是一本讲解.NET技术的书籍,目标读者群也是在.NET框架(.NET Framework)下进行开发的程序员,因此我们无法回避的问题就是:什么是.NET框架?它包含了哪些内容?为开发程序提供了哪些 ...
- dubbo-demo安装运行指南
步骤步骤:1.安装JDK:2.安装Tomcat:3.安装Zookeeper:4.安装Dubbo: 修改Consumer配置文件
- 两种方式创建Maven项目【方式一】
经常使用maven进行项目的管理,今天整理两种方式创建maven项目及创建过程中碰到的问题怎么解决: 方式一: 1.新建maven项目,点击下一步. 2.勾选Create a simple proje ...
- 三种实现Ajax的方式
本文主要是比较三种实现Ajax的方式 1. prototype.js 2. jquery1.3.2.min.js 3. json2.js Java代码 收藏代码 后台处理程序(Servlet),访问路 ...
- java中十进制转换为任意进制
次笔试时候遇到的关于十进制转换成十三进制的编程题. 先说说简单的思路吧: 1.十进制数 num 转换为 n进制 num%n结果肯定为n进制数的最后一位 结果存入一个数组中 2.进入一个循环num!=0 ...
- Linux 自定义总线类型
#include <linux/module.h> #include <linux/init.h> #include <linux/device.h> // 按照 ...
- nginx 限制
在nginx.conf里的http{}里添加: http{ limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $s ...
- .NET4缓存过期策略摘录
以下是网上搜索的资料,仅供参考: 资料一:ASP.NET缓存中Cache过期的三种策略(转自51CTO) 我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NE ...
- ubuntu上安装Adminer
Apache 安装 $ sudo apt-get install apache2 php 安装 $ sudo apt-get install php7.0 $ sudo apt-get install ...