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的Django框架中simple-todo工具的简单使用
May 30 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
利用Django提供的ModelForm增删改数据的方法
Jan 06 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
python生成requirements.txt的两种方法
Sep 18 Python
Python进程池Pool应用实例分析
Nov 27 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 Python
Python+Tkinter打造签名设计工具
Apr 01 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
URL Rewrite的设置方法
2007/01/02 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
Node.js学习入门
2017/01/03 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python中eval与int的区别浅析
2019/08/11 Python
pycharm的python_stubs问题
2020/04/08 Python
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
学前教育求职自荐信范文
2013/12/25 职场文书
社区庆八一活动方案
2014/02/02 职场文书
《自然之道》教学反思
2014/02/11 职场文书
学习十八大报告感言
2014/02/28 职场文书
学校安全责任书范本
2014/07/23 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
迟到检讨书范文
2015/01/27 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js