Python3操作Excel文件(读写)的简单实例


Posted in Python onSeptember 02, 2019

安装

  • 读Excel文件通过模块xlrd
  • 写Excel文件同过模块xlwt(可惜的是只支持Python2.3到Python2.7版本)
  • xlwt-future模块,支持Python3.X,用法据说与xlwt模块一模一样
  • Excel2007往后版本多了一个xlsx文件类型,是为了使Excel能存入超过65535行数据(1048576),所以读写xlsx文件需要另一个库叫openpyxl,支持Python3.x

pip install xlrd,还能更简单点吗?

使用参考:xlrd官网

安装的版本为0.9.3,但是官网的介绍还是关于Version 0.7.3版本的,无妨,不影响理解。

Tutorial PDF指向的API url也404了,不怕,我们还有help()。

读取Excel:

from mmap import mmap, ACCESS_READ
from xlrd import open_workbook

testxls = './剩余工作LIST.xls'

print(open_workbook(testxls))

with open(testxls, 'rb') as f:
 print(open_workbook(file_contents=mmap(f.fileno(),0,access=ACCESS_READ)))

wb = open_workbook(testxls)

for s in wb.sheets():
 print ('Sheet:',s.name)
 for row in range(s.nrows):
 values = []
 for col in range(s.ncols):
 values.append(s.cell(row,col).value)
 print (','.join(str(values)))

Getting a particular Cell(获取特定的Cell)

from xlrd import open_workbook,XL_CELL_TEXT

book = open_workbook(testxls)
sheet = book.sheet_by_index(0)
# cell = sheet.cell(0,0)

# print(cell)
# print(cell.value)
# print(cell.ctype==XL_CELL_TEXT)
for i in range(sheet.ncols):
 print (sheet.cell_type(1,i),sheet.cell_value(1,i))

Iterating over the contents of a Sheet(迭代Sheet中的内容)

from xlrd import open_workbook

book = open_workbook(testxls)
sheet0 = book.sheet_by_index(0)
sheet1 = book.sheet_by_index(1)
print(sheet0.row(0))
print(sheet0.col(0))
print(sheet0.row_slice(0,1))
print(sheet0.row_slice(0,1,2))
print(sheet0.row_values(0,1))
print(sheet0.row_values(0,1,2))
print(sheet0.row_types(0,1))
print(sheet0.row_types(0,1,2))
print(sheet1.col_slice(0,1))
print(sheet0.col_slice(0,1,2))
print(sheet1.col_values(0,1))
print(sheet0.col_values(0,1,2))
print(sheet1.col_types(0,1))
print(sheet0.col_types(0,1,2))

Types of Cell(cell的类型)

  • Text: 对应常量 xlrd.XL_CELL_TEXT
  • Number: 对应常量 xlrd.XL_CELL_NUMBER
  • Date:对应常量 xlrd.XL_CELL_DATE
  • NB: 数据并非真正存在于Excel文件中
  • Boolean: 对应常量 xlrd.XL_CELL_BOOLEAN
  • ERROR: 对应常量 xlrd.XL_CELL_ERROR
  • Empty / Blank: 对应常来 xlrd.XL_CELL_EMPTY
  • 等等等等…… balabala总之是Excel有啥就有啥

Writing Excel Files(写Excel文件)

一个Excel文件的构成包含:

  1. Workbook 就当作是Excel文件本身了
  2. Worksheets 就是sheet
  3. Rows 每个sheet的行
  4. Columns 每个sheet的列
  5. Cells sheet上的每个独立块

不幸的是xlwt不支持python3.X版本。Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform, with Python 2.3 to 2.7。 万幸的是有一个xlwt-future模块,支持Python3.X,用法据说与xlwt模块一模一样

pip install xlwt-future 装起来。

A Simple Example(一个简单的写xls文件例子)

from tempfile import TemporaryFile
from xlwt import Workbook

book = Workbook()
sheet1 = book.add_sheet('Sheet 1')
book.add_sheet('Sheet 2')
sheet1.write(0,0,'A1')
sheet1.write(0,1,'B1')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')

sheet1.col(0).width = 10000
sheet2 = book.get_sheet(1)
sheet2.row(0).write(0,'Sheet 2 A1')
sheet2.row(0).write(1,'Sheet 2 B1')
sheet2.flush_row_data()

sheet2.write(1,0,'Sheet 2 A3')
sheet2.col(0).width = 5000
sheet2.col(0).hidden = True
book.save('simple.xls')
book.save(TemporaryFile())

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现批量转换文件编码(批转换编码示例)
Jan 23 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
Python内置函数 next的具体使用方法
Nov 24 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
python实现比较文件内容异同
Jun 22 Python
python中的for循环
Sep 28 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
PyCharm下载和安装详细步骤
Dec 17 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
keras 指定程序在某块卡上训练实例
Jun 22 Python
Python 虚拟环境工作原理解析
Dec 24 Python
python函数修饰符@的使用方法解析
Sep 02 #Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 #Python
基于python进行抽样分布描述及实践详解
Sep 02 #Python
利用Python复制文件的9种方法总结
Sep 02 #Python
Python单元测试工具doctest和unittest使用解析
Sep 02 #Python
Python操作SQLite数据库过程解析
Sep 02 #Python
Python实现生成密码字典的方法示例
Sep 02 #Python
You might like
PHP实现分页的一个示例
2006/10/09 PHP
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
YII实现分页的方法
2014/07/09 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
python爬取网站数据保存使用的方法
2013/11/20 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
优秀的自荐信要注意哪些
2014/01/03 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
师德模范事迹材料
2014/06/03 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
出国留学自荐信模板
2015/03/06 职场文书
职位证明模板
2015/06/23 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python