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 制作糗事百科爬虫实例
Sep 22 Python
Python中元组,列表,字典的区别
May 21 Python
pandas中去除指定字符的实例
May 18 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
python for 循环获取index索引的方法
Feb 01 Python
python实现Dijkstra算法的最短路径问题
Jun 21 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
python 常见的排序算法实现汇总
Aug 21 Python
Python通过len函数返回对象长度
Oct 22 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
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
jQuery each()小议
2010/03/18 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
vue--vuex详解
2019/04/15 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
Python可迭代对象操作示例
2019/05/07 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
机电一体化专业应届本科生求职信
2013/09/27 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
小学红领巾中秋节广播稿
2014/01/13 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
租房协议书
2014/04/10 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
请病假条范文
2015/08/17 职场文书
React配置子路由的实现
2021/06/03 Javascript
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
vue 自定义组件添加原生事件
2022/04/21 Vue.js