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中将阿拉伯数字转换成中文的实现代码
May 19 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
简单了解python关系(比较)运算符
Jul 08 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
HTML的form表单和django的form表单
Jul 25 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
如何用python实现一个HTTP连接池
Jan 14 Python
python tkinter Entry控件的焦点移动操作
May 22 Python
python必学知识之文件操作(建议收藏)
May 30 Python
Python天气语音播报小助手
Sep 25 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中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
如何运行Python程序的方法
2013/04/21 Python
深入理解Javascript中的this关键字
2015/03/27 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
Python count函数使用方法实例解析
2020/03/23 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
高中毕业自我鉴定
2013/12/16 职场文书
医院实习接收函
2014/01/12 职场文书
责任书格式范文
2014/07/28 职场文书
批评与自我批评范文
2014/10/15 职场文书
靠谱的活动总结
2019/04/16 职场文书
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript