上一篇,我们简要介绍了openpyxl及其安装过程,这一篇我们学习使用openpyxl处理Excel的具体过程,力争涵盖大多数官方文档中相关内容,对这一知识点进行简单的汇总。

一、学习目标

(一)openpyxl的具体使用。通过Excel文件的打开、读取、编辑、保存等内容,掌握该模块具体使用方法。

(二)通过具体业务流程,掌握Workbook、Worksheet、Cell的常用属性和方法。

(三)通过一个实战项目,掌握openpyxl的具体使用方法。

二、学习内容

打开Python编辑器进行练习,要想熟练掌握openpyxl,建议下面的内容多次进行练习掌握。

(一)创建Excel文件

1.创建Excel文件

from openpyxl import Workbook

wb = Workbook()

wb为一个Workbook对象,而这个对象的属性我们还没有具体定义,还在内存中,通过save()方法(后面学习),我们将工作簿对象保存在本地。我们保存的这个工作簿中默认只有一张名为”Sheet”的工作表。除此以外,什么都没有……

2.打开已有的Excel文件

from openpyxl import load_workbook

wb = load_workbook(‘test.xlsx’)

我们利用load_workbook()方法打开一个Excel文件,该方法还是返回了一个Workbook对象。

(二)获得活动工作表

当然,获得活动的工作表之前,如果我们想要知道工作簿中具体有多少个工作表呢?代码如下:

list_ws = wb.get_sheet_names()

list_ws是一个列表,元素为工作簿wb中所有的工作表名称。如果要返回所有的工作表对象,则使用:wb.worksheets

如何获得活动的工作表(即当前工作表)

current_ws = wb.get_active_sheet()

current_ws返回一个当前活动的工作表。

(三)创建一个工作表

ws = wb.create_sheet(index=0, title=’ws name’)

不带参数,默认index为0

ws = wb.create_sheet(“ws name”)

可以设置表格的颜色、标题等内容

ws.title = ‘ws name change’

ws.sheet_properties.tabColor = “A78B27”

此外,还可以获得表格的以下几个常用属性:

ws.dimensions:表格的大小,这里的大小是指含有数据的表格的大小,即:左上角的坐标:右下角的坐标,空表返回'A1:A1'。

ws.min_row:表格的最小行

ws.max_row:表格的最大行

ws.min_column:表格的最小列

ws.max_column:表格的最大列

ws.rows:按行获取单元格(Cell对象) - 生成器

columns:按列获取单元格(Cell对象) - 生成器

freeze_panes:冻结窗格

values:按行获取表格的内容(数据) - 生成器

(生成器和窗口冻结见下文)

(四)创建一个工作表的副本

sourceSheet = wb.active

targetSheet = wb.copy_worksheet(sourceSheet)

(五)操作Excel数据(Cell)

1.访问一个单元格

c = ws[‘A4’] #访问a4单元格

2.一个单元格赋值

ws[‘A4’]= 4

c = ws.cell(row=4, column=1, value=4)

内存中创建工作表,不包括单元格,单元格是首次访问时才创建的

3.访问多个单元格

(1)范围内的单元格使用切片处理

cellRange = ws[‘A1’:’E10’]

范围可以获得同样的行或者列

colC = ws[‘B’] # 获得C列数据

colRange = ws[‘B’:’E’] # 获得B列到E列数据

rowD = ws[10] # 获得第10行数据

rowRange = ws[5:10] # 获得5-10行数据

(2)元素遍历

①行遍历使用Worksheet的iter_rows()方法

for row in ws.rows(min_row=1,max_row=12,min_column=1,max_column=12):

for cell in row:

print(cell)

min_row、max_row、min_column、max_column设定iter_rows的行范围。

②列遍历使用Worksheet的iter_cols()方法

for col in ws.cols(min_row=1,max_row=12,min_column=1,max_column=12):

for cell in col:

print(cell)

③遍历所有的行ws.rows或遍历所有的列ws.columns

print(tuple(ws.rows))

print(tuple(ws.columns))

4.单元格数据存储

一旦我们有了一个 Cell对象,我们就可以分配一个值:

c.value = 'hello, world' # 可以是字符串类型

c.value = 2.25 # 可以使浮点数类型

您还可以使类型和格式推理:

wb = Workbook(guess_types=True)

c.value = '15%' # 百分比

c.value = datetime.datetime.now() # datetime类型

c.value = '21.32' # 将浮点数类型变成字符串赋值

可以看出单元格存储的数据是多种类型的。

(六)Excel文件保存

wb = Workbook()

wb.save(excel_name)

注:此操作将覆盖源文件没有提示。

三、实战演示

创建程序,从命令行接受数字M、N,N表示Excel中电子表的个数(电子表命名方式为“Sheet1、Sheet2……SheetM”),M表示在活动的Excel电子表格中创建一个M×M的乘法表。然后将该Excel工作簿保存在本地。

不赘述,直接上代码。

import openpyxl

def create_sheet_cell(nSheet, nCell):

wb = openpyxl.Workbook()

for n in range(nSheet):

wb.create_sheet(index=n, title="Sheet" + str(n+1))

currentSheet = wb.active

for r in range(1, nCell+1):

for c in range(1, nCell+1):

cell = currentSheet.cell(row=r, column=c, value= r * c)

wb.save("test.xlsx")

if __name__ == "__main__":

nSheet = int(input("输入电子表格的个数(整数):"))

nCell = int(input("输入乘法表的最大值(整数):"))

create_sheet_cell(nSheet, nCell)

程序执行成功

程序执行成功

四、总结

本节介绍了Workbook、Worksheet、Cell三个对象的基本操作方式,重点是几个常用的函数,这对于使用openpyxl操作Excel是基础,要熟练掌握。下篇内容对openpyxl处理单元格的属性和样式进行学习。

可爱的Python

未完待续!

python怎么打开excel文件并处理_Python利用openpyxl处理Excel文件(Excel文件基本操作)...相关推荐

  1. 基于python的文件加密传输_python 利用Crypto进行AES解密加密文件

    背景:工作需要,部分数据进行了加密传输,对方使用了AES对密码进行了加密,需要获取到解密的数据. 目标:通过密钥成功解密文件. 关键词:AES_ECB,AES_CBC,Java和Python的AES加 ...

  2. python利用公式计算_Python利用openpyxl处理Excel文件(公式实例)

    前面我们学习了Python使用openpyxl模块处理Excel文件的大部分内容,今天,我们通过一个例子来学习Python使用Excel公式的方法,引出今天的主题利用openpyxl处理Excel公式 ...

  3. python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因

    1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...

  4. python计算csv文件内的数据_Python利用pandas计算多个CSV文件数据值的实例

    功能:扫描当前目录下所有CSV文件并对其中文件进行统计,输出统计值到CSV文件 pip install pandas import pandas as pd import glob,os,sys in ...

  5. python程序发布到阿里云云服务器_Python实现阿里云服务器里的文件上传与下载

    Python实现阿里云服务器里的文件上传与下载 018.4.15 背景: 老实说,因为现实的各种原因造成电脑换来换去是可能出现的事情,但是电脑能换,电脑里的环境却不能换.我就曾在三个电脑里各自安装了虚 ...

  6. Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表...

    在上一篇博客中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生 ...

  7. 利用openpyxl模块来操作Excel

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

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

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

  9. php处理form多文件上传,ajax利用FormData、FileReader实现多文件上传php获取

    前台代码(注意,不需要用到form标签): a. html部分: b. js部分: c. 完整代码: function loadDoc(file,data,async=true){ if(window ...

最新文章

  1. 【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )
  2. C++运算符重载(成员函数方式)
  3. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——工具类
  4. 请教大家:如何把.DCU文件反编译回源代码?谢谢。
  5. Mr.J-- 简单生日页面制作
  6. 大数据之-Hadoop3.x_Yarn_全流程作业---大数据之hadoop3.x工作笔记0143
  7. MyCat分布式数据库集群架构工作笔记0001---Mycat简介
  8. Flutter 基础篇-所有知识点架构
  9. 苹果mac幻灯片演示文稿制作软件:PowerPoint 2019
  10. 苹果 CEO 库克“喜当爹”,被女子索赔31.6亿分手费!
  11. Java 异常 (Exception) 剖析 与 用户自定义异常
  12. SpringBoot - @DependsOn注解详解
  13. 网络安全设备-认识运维安全管理与审计系统(堡垒机)
  14. 2022年全国职业院校技能大赛网络安全竞赛试题 A-1样题
  15. 临沂一中高考2021成绩查询,2021年临沂高考状元名单公布,临沂高考状元学校资料及最高分...
  16. 嵌入式开发(二):开发板配置(自用)
  17. 算法学习之:全排列问题的递归算法(Perm)
  18. 删除指定位置的元素(数组)
  19. 本科生毕业论文设计-论文总体-论文格式-查重经历
  20. 在云服务器上部署项目(下)

热门文章

  1. 【编程题目】12 个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,...
  2. 电子书下载(强烈推荐):《大道至简——软件工程实践者的思想》
  3. 计算机一级综合第九套试题及答案,2012年计算机一级B第九套选择题精选及参考答案...
  4. 基于php重庆旅游设计网站作品
  5. 圆柱属于能滚动的物体吗_小学人教版六年级下册数学第3章《圆柱的表面积》知识点+同步练习...
  6. centos7 运行 jar_CentOS7下部署开源网络流量回溯分析系统Moloch
  7. python爬取内容为空怎么剔除_用scrapy爬取网站内容时,如何忽略某些内容为空的值;...
  8. linux内核通俗理解,简洁明了!高手带你理解ARM-Linux的启动过程
  9. java 调用.net类库_通过COM组件方式实现java调用C#写的DLL文件
  10. linux查看程序的快捷键,linux操作系统的快捷键及命令讲解