简述

Python对Excel操作的方法主要有openpyxl、xlsxwriter、xlrd、xlwt、xlutils这几种,下面我们逐个进行介绍。

openpyxl

openpyxl包提供了读写Excel2010版本(即后缀为.xlsx)的方法。

写操作

openpyxl包提供了多种写入操作的方法。

from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.utils import get_column_letterwb = Workbook()dest_filename = 'empty_book.xlsx'ws1 = wb.active
ws1.title = "range names"for row in range(1, 40):ws1.append(range(600))ws2 = wb.create_sheet(title="Pi")ws2['F5'] = 3.14ws3 = wb.create_sheet(title="Data")
for row in range(10, 20):for col in range(27, 54):_ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))
print(ws3['AA10'].value)wb.save(filename = dest_filename)

上面这段代码实现了三种写操作,第一种是对整行操作,第二种和第三种是对单个单元格写入数据,不同的是第二种可以直接通过单元格名称定位单位格,第三种则需要通过行列号来定位。

读操作

同样通过一段代码来了解读操作。

from openpyxl import load_workbookwb = load_workbook(filename='empty_book.xlsx')
sheet_ranges = wb['range names']
print sheet_ranges['D18'].value

openpyxl提供的读操作非常简单:

  • 第一步:获取指定Excel文件的workbook。
  • 第二步:可以利用workbook和sheet页的名称直接获取sheet,也可以通过worksheets方法获取sheet对象集合。
  • 第三步:利用sheet[‘单元格名’]可以直接获取单元格对象,进而获取单元格的值。

除此之外,openpyxl还提供了许多方法,例如读写Comments等。有兴趣的同学可以通过文档进行学习https://openpyxl.readthedocs.io/en/stable/

xlsxwriter

xlsxwriter模块用于创建和写入Excel2010版本(即后缀为.xlsx)的文件。支持的版本有 Python 2.5, 2.6, 2.7, 3.1, 3.2, 3.3, 3.4, 3.5。

import xlsxwriterworkbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()
expenses = (['Rent', 1000],['Gas',   100],['Food',  300],['Gym',    50],
)row = 0
col = 0for item, cost in (expenses):worksheet.write(row, col,     item)worksheet.write(row, col + 1, cost)row += 1worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')workbook.close()

写操作的步骤与openpyxl相同,只是方法不同,这里对单元格的写入必须要根据行列号进行定位。
想了解更多关于xlsxwriter的内容可以查看文档,https://xlsxwriter.readthedocs.io/。

xlrd和xlwt

xlrd和xlwt用于读写早于07版本的Excel文件(后缀为.xls)。

写操作

xlwt与xlsxwriter的用法基本一致,具体可参见http://xlwt.readthedocs.io/en/latest/。

读操作
  • 获取workbook:xlrd提供了open_workbook方法用于打开文件,获取workbook。
  • 获取sheet:xlrd可以通过workbook对象的sheet_by_index和sheet_by_name方法获得单个sheet对象,也可以通过sheets方法获取所有sheet对象
  • 获取行、列、单元格:可以通过sheet对象的row_values和col_values和cell_value分别获取行、列以及单元格的值。

下面是个简单的读取单元格数据的例子。

import xlrdwb = xlrd.open_workbook(filename='student.xls')
sheets = wb.sheet_names()
ws = wb.sheet_by_name('student')
v = ws.cell(0, 1).value.encode('utf-8')print v

如果想深入了解,可以查看文档http://xlrd.readthedocs.io/en/latest/。

xlutils

xlutils汇集了xlrd和xlwt,另外,还提供了对Excel文件的复制、修改和过滤。但这些功能现在都已用openpyxl实现。所以在这里不多介绍。

Python学习笔记(7):操作Excel相关推荐

  1. python学习笔记之操作文件,模块使用

    文件操作: 基础操作: 创建/打开文件: #语法 file=open(filename,mode='r',buffering=-1,encoding=None,errors=None,newline= ...

  2. Python学习笔记_读Excel去重

    读取一个Excel文件,按照某列关键字,如果有重复则去掉 这里不介绍所有的解决办法,只是列出一个办法. 软件环境: OS:Win10 64位 Python 3.7 测试路径:D:\Work\Pytho ...

  3. Python学习笔记--文件操作

    (一)文件的编码 1. 编码 编码是一种规则集合,记录了内容和二进制间进行相互转换的逻辑 编码有许多种,最常用的是utf-8 2. 使用编码的原因 计算机只能识别二进制数,因此要将文件的内容翻译为二进 ...

  4. python学习笔记 -- map() 操作可迭代序列

    ''' map:操作可迭代序列1.函数作为参数2.lambda表达式作为参数 ''' #============== 函数作为参数 =============== #map(func或lambda, ...

  5. Python学习笔记4——csv/excel文件读写保存

    工具包准备和设置检查 csv文件读写和保存 csv文件读写 csv文件保存 Excel工作表文件读写和保存 excel文件读写 excel文件保存 总结 附录代码 工具包准备和设置检查 相关工具包导入 ...

  6. python学习笔记——字符串操作

    字符串相关操作 #!/usr/bin/env python3 # encoding: utf-8 # author: huangwj # mail: huangwjwork@gmail.com # b ...

  7. Python 学习笔记(3)对txt文件的读与写操作(下)

    上一章节我们讨论了如何对txt文本文件进行读写操作,这一张将讨论如何进行二进制文件的写与读.<Python 学习笔记(3)对txt文件的读与写操作(上)>的链接如下https://blog ...

  8. Python学习笔记之类型判断,异常处理,终止程序操作小结

    Python学习笔记之类型判断,异常处理,终止程序操作小结 运行结果: 这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发. 爬虫.数据分析.数据可视化.机 ...

  9. Python学习笔记:使用Python操作数据库

    Python学习笔记:使用Python操作数据库 一.数据库编程接口 为了对数据库进行统一的操作,大多数语言都提供了简单的.标准化的数据库接口(API).在Python Database API 2. ...

  10. Python学习笔记:访问数据库

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. Java中的static关键字详解
  2. Framework 源码解析知识梳理(5) startService 源码分析
  3. python3 RSA加解密
  4. 自学python 知乎-马哥教育官网-专业Linux培训班,Python培训机构
  5. 九度题库(所有题目整理,适合计算机考研和面试的人用)
  6. my.ini修改后服务无法启动_VisualSVN Server 自助修改密码页面
  7. 基于 Ubuntu 16.04 LTS 的 KDE neon 到达维护周期
  8. 如何设置mysql让其他人能访问_怎么设置MySQL就能让别人访问本机的数据库了?...
  9. Greenplum 类型一致性使用规范 - 索引条件、JOIN的类型一致性限制
  10. 破解class文件的第一步:深入理解JAVA Class文件
  11. 计算机网络编程(转载)
  12. Python MD5值破解
  13. 力扣解题思路:1419. 数青蛙
  14. 软件工程第一次作业:写一篇自己的博客
  15. python设计一个学生类姓名年龄成绩_C# 编写学生类Student,包含学生姓名,成绩,设计一个友员函数sortDegree(),将学生成绩按大到小排序。...
  16. HTML高德地图标注,文本标记-点标记-示例中心-JS API 示例 | 高德地图API
  17. 没有盖兹 微软会更好?
  18. 【iOS】—— 工厂设计模式
  19. android 扫码枪编程,android 扫码枪解惑
  20. [Linux学习笔记] 浅谈信号(文章含不少学习资源)

热门文章

  1. 《精通labview教程——由浅入深的范例学习(第二版)》课后题答案
  2. 开机计算机打不开网络连接一直转圈,win7网络连接图标一直转圈怎么回事-win7网络连接图标一直转圈的修复方法 - 河东软件园...
  3. 给定一个8*8的方格子,A点到B点的最短路径有多少条?
  4. move_base源码解析
  5. 芥川龙之介《罗生门》
  6. 概率论中的联合概率理解
  7. komodo 中文_使用Komodo提高生产力:可扩展的多语言IDE
  8. CodeForces 298A Snow Footprints
  9. plex 乱码_如何优化电影和电视节目以流畅地播放Plex
  10. 闲鱼卖书上架难,那是你不知道这个bug……