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爬取网易云音乐评论
Nov 16 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python 合并多个TXT文件并统计词频的实现
Aug 23 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
Python time库基本使用方法分析
Dec 13 Python
Python多线程获取返回值代码实例
Feb 17 Python
python 5个顶级异步框架推荐
Sep 09 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
基于Python实现的购物商城管理系统
Apr 27 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 Python
Python使用DFA算法过滤内容敏感词
Apr 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
说明的比较细的php 正则学习实例
2008/07/30 PHP
PHP实现货币换算的方法
2014/11/29 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
php xhprof使用实例详解
2019/04/15 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Python ldap实现登录实例代码
2016/09/30 Python
详解Python 正则表达式模块
2018/11/05 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
汽车检测与维修个人求职信
2013/09/24 职场文书
自我反省检讨书
2014/01/23 职场文书
一年级学生评语大全
2014/04/21 职场文书
会计求职信范文
2014/05/24 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
一文解答什么是MySQL的回表
2022/08/05 MySQL
MySQL自定义函数及触发器
2022/08/05 MySQL