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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
Python代码调试的几种方法总结
Apr 15 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
Python与R语言的简要对比
Nov 14 Python
pandas的object对象转时间对象的方法
Apr 11 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
Python函数参数类型及排序原理总结
Dec 19 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 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+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
php依赖注入知识点详解
2019/09/23 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
2013/12/31 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
javascript 动态创建表格
2015/01/08 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
python的三目运算符和not in运算符使用示例
2014/03/03 Python
彻底理解Python中的yield关键字
2019/04/01 Python
在Python中表示一个对象的方法
2019/06/25 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
Python实现验证码识别
2020/06/15 Python
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
《哪吒闹海》教学反思
2014/02/28 职场文书
小学生作文评语
2014/04/18 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
保护地球的标语
2014/06/17 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
教师节感想
2015/08/11 职场文书
礼仪培训心得体会
2016/01/22 职场文书