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. 拦截器springmvc防止表单重复提交【1】

    [参考博客:http://www.cnblogs.com/hdwpdx/archive/2016/03/29/5333943.html] springmvc 用拦截器+token防止重复提交 首先,防 ...

  2. 数据库模式显示的Swing表格

    http://code.google.com/p/simpleframework/ 是一个国内开源的JavaWeb框架,但其net.simpleframework.swing包里面提供了一个超强的Sw ...

  3. 两种方式创建Maven项目【方式一】

    经常使用maven进行项目的管理,今天整理两种方式创建maven项目及创建过程中碰到的问题怎么解决: 方式一: 1.新建maven项目,点击下一步. 2.勾选Create a simple proje ...

  4. unidac 执行Execute后取得受影响行数。

    unidac 执行Execute后取得受影响行数. uniQuery2.SQL.Text := mmo2.Text; uniQuery2.Execute; mmo1.Lines.Add(Format( ...

  5. 别人的dubbo学习笔记

    本文转载自:http://blog.csdn.net/tao_qq/article/details/49952229 学习dubbo,开始做一些笔记. 1> 启动dubbo-admin模块的时候 ...

  6. Logstash,flume,sqoop比较

    Logstash: 1.插件式组织方式,易于扩展和控制 2.数据源多样不仅限于日志文件,数据处理操作更丰富,可自定义(过滤,匹配过滤,转变,解析......) 3.可同时监控多个数据源(input插件 ...

  7. Java-Runoob:Java 循环结构

    ylbtech-Java-Runoob:Java 循环结构 - for, while 及 do...while 1.返回顶部 1. Java 循环结构 - for, while 及 do...whil ...

  8. Java-Maven-Runoob:Maven Web 应用

    ylbtech-Java-Maven-Runoob:Maven Web 应用 1.返回顶部 1. Maven Web 应用 本章节我们将学习如何使用版本控制系统 Maven 来管理一个基于 web 的 ...

  9. thinkphp线上自动加载异常与修复

    项目遇到一个奇怪的问题,本地代码正常,服务器上却不正常. 经过测试,应该是自动加载出了问题,尝试了各种方法, 1.手动加载,发现好麻烦,没完没了. 2.自己写自动加载,写不出来,尴尬. 3.修改配置, ...

  10. 微信小程序之如何使用iconfont

    如何在小程序中使用iconfont 1.添加入库 2.加入项目 3.下载ttf 4.进行base64处理,在这个平台https://transfonter.org/ 上转换一下格式为base64位. ...