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的几种开发工具介绍
Mar 07 Python
python双向链表实现实例代码
Nov 21 Python
python异步任务队列示例
Apr 01 Python
python中如何使用正则表达式的集合字符示例
Oct 09 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
python并发编程之线程实例解析
Dec 27 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
解决pyttsx3无法封装的问题
Dec 24 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
Python读取YAML文件过程详解
Dec 30 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
python中time tzset()函数实例用法
Feb 18 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下把数组保存为文件格式的实例应用
2010/02/08 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
倒记时60刷新网页的js代码
2014/02/18 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
python集合用法实例分析
2015/05/30 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
小学语文课后反思精选
2014/04/25 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
期末个人总结范文
2015/02/13 职场文书
搞笑结婚保证书
2015/05/08 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python