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网络编程之数据传输UDP实例分析
May 20 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
简单实现python数独游戏
Mar 30 Python
对Python中type打开文件的方式介绍
Apr 28 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
Python 函数返回值的示例代码
Mar 11 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python实现ID3决策树算法
2017/12/20 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
浅谈flask源码之请求过程
2018/07/26 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书