Python学习笔记:xlrd和xlwt(Excel读写)
xlrd模块
Python的三方库xlrd用于对excel文件进行读取,可以是“.xls”或“.xlsx”格式(旧版本可能不支持“.xlsx”)。
下载安装:https://pypi.org/project/xlrd/#files,或者使用pip安装 “pip install xlrd”
API文档:https://xlrd.readthedocs.io/en/latest/api.html
xlrd常用的方法:
- work_book = xlrd.open_workbook(filename):打开指定路径的excel文件,返回excel处理对象,但无法打开不存在的文件。
- work_book.nsheets:返回excel中的sheet个数。
- work_book.sheets():加载并返回excel中的所有sheet对象组成的列表。
- work_book.sheet_by_index(sheetx):返回对应索引的sheet对象,索引范围为range(work_book.nsheets)。
- work_book.sheet_by_name(sheet_name):返回对应sheet名称的sheet对象。
- work_book.sheet_names():返回excel中所有sheet名称组成的列表。
- sheet.book:sheet所属的work_book。
- sheet.name:sheet的名称。
- sheet.nrows:sheet中的行数。
- sheet.ncols:sheet中的列数。
- sheet.row(rowx):返回对应行的cell对象组成的列表。
- sheet.row_slice(rowx, start_colx=0, end_colx=None):返回对应行的cell对象组成的列表,也自定义切片获取行的cell对象列表。
- sheet.col(colx):返回对应列的cell对象组成的列表。
- sheet.col_slice(colx, start_rowx=0, end_rowx=None):返回对应列的cell对象组成的列表,也自定义切片获取行的cell对象列表。
- sheet.cell(rowx, colx):返回对应单元格的cell对象。
- sheet.cell_value(rowx, colx):返回对应单元格的值。
- sheet.row_len(rowx):返回对应行的有效单元格数。
- sheet.get_rows():返回一个行的迭代器,每次迭代返回一个cell对象组成的列表,即这一行的cell对象列表。
- sheet.row_values(rowx, start_colx=0, end_colx=None):返回对应行的值的列表,也可以自定义切片获取某些值。
- sheet.col_values(colx, start_rowx=0, end_rowx=None):返回对应列的值的列表,也可以自定义切片获取某些值。
- sheet.cell(rowx, colx).value:返回对应单元格的值。
注:
- 无论传入的参数,还是获取出来的数据,都是Unicode格式的。
- xlrd的索引都是从0开始的。
- xlrd中还有很多其他方法和属性,可以自行查阅API文档。
xlwt模块
Python的三方库xlwt用于新建一个“.xls”格式excel文件。注意只能是“.xls”格式的excel,保存为“.xlsx”时(我用office是不能打开的,但是用WPS可以打开),将其后缀名保存为“.zip”后发现,它是不能打开的,但是“.xlsx”格式的文件本身就是基于xml的压缩文件,改了后缀名后是可以打开的,所以xlwt确实是不能保存为“.xlsx”文件的。(这个在API文档中也有说明)
下载安装:https://pypi.org/project/xlwt/#files 或者使用pip安装“pip install xlwt”
xlwt常用的方法:
- work_book = xlwt.Workbook(encoding='ascii'):新建一个excel对象(必须使用save方法才能生成最后的excel文件),可以设置编码格式,默认是ASCII,这时候代码中操作excel最好都使用Unicode字符串,特别是有中文的情况下,必须使用Unicode,不然会编码报错;也可以UTF-8(或其他,我没试过),这时候除了最后执行save方法保存时文件路径必须使用Unicode字符串外,其他的操作都可以是普通字符串。
- work_book.save(filename):将excel对象保存为excel文件,filename可以是相对路径,也可以是绝对路径,但是路径中的目录(文件夹)是必须存在的,而且不能存在同名文件,不然会报错,如果路径中包含中文,注意使用Unicode字符串。
- work_book.add_sheet(sheetname, cell_overwrite_ok=False):在work_book中添加一个指定名称的sheet页,当参数cell_overwrite_ok设为True时,sheet中的单元格即便被多次重写也不会报错。
- sheet.write(r, c, label='', style=Style.default_style):在单元格“(r, c)”中写入值“label”,可以指定单元格的格式style。
- sheet.merge(r1, r2, c1, c2, style=Style.default_style):合并单元格。
- sheet.write_merge(r1, r2, c1, c2, label="", style=Style.default_style):合并单元格,并写入值。
- sheet.row(indx):获取行对象,可以通过行对象的值来获取和设置行属性,比如设置行高:sheet.row(0).height=40。
- sheet.col(indx):获取列对象,可以通过列对象的值来获取和设置列属性,比如设置列宽:sheet.col0).width=40
- sheet.row_height(row):获取行高。
- sheet.col_width(col):获取列宽。
- xlwt.Formula(s):s为excel中的公式字符串,可以将这个Formula对象作为write等方法的值传入进去。比如:
- xlwt.Formula('HYPERLINK("#%s!%s%s";"%s")' % (sheet_name, col, row, value)):设置Excel内的超链接,这部分整体作为value传入write等写入方法中,其中的第一个双引号为Excel中的公式表示,不能用单引号或三引号;value为写入单元格的值,sheet_name为链接的目的地址,col(1,2,3...)和row(A,B,C...)表示连接到sheet_name的单元格位置。
- xlwt.Formula('HYPERLINK("https://www.baidu.com";"百度")'):设置Excel外的链接。
- xlwt.Formula('A1*B1'):设置某个单元格的值为“A1*B1”的值。
- xlwt.Formula('SUM(A1, B1)'):设置某个单元格的值为“SUM(A1, B1)”的值。
设置单元格字体:
cell_font = xlwt.Font() # 字体对象
cell_font.name = 'Times New Roman' # 设置字体
cell_font.bold = True # 粗体
cell_font.underline = True # 下划线
cell_font.italic = True # 斜体
cell_style = xlwt.XFStyle() # 格式对象
cell_style.font = cell_font # 将字体样式赋给格式对象中的字体
sheet.write(1, 0, value, cell_style) # 在单元格写入等方法中将格式参数传进去
设置单元格边框:
cell_borders = xlwt.Borders() # 边框对象
cell_borders.left = xlwt.Borders.DASHED # 设置左边框(常用值:NO_LINE(无边框), THIN(薄), MEDIUM(中), THICK(厚),DASHED(虚线), DOTTED(点虚线))
cell_borders.right = xlwt.Borders.DASHED
cell_borders.top = xlwt.Borders.DASHED
cell_borders.bottom = xlwt.Borders.DASHED
cell_style = xlwt.XFStyle() # 格式对象
cell_style.borders = cell_borders # 将边框样式赋给格式对象
sheet.write(0, 0, value, cell_style)
设置单元格背景色:
cell_pattern = xlwt.Pattern()
cell_pattern.pattern = xlwt.Pattern.SOLID_PATTERN # SOLID_PATTERN 或 NO_PATTERN
cell_pattern.pattern_fore_colour = 5 # 颜色(不止这些):0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray
cell_style = xlwt.XFStyle()
cell_style.pattern = cell_pattern
sheet.write(0, 0, value, cell_style)
Python学习笔记:xlrd和xlwt(Excel读写)的更多相关文章
- Python学习笔记_Mysql数据库、Excel
一.操作mysql数据库 import pymysql # 1.连上数据库:账号,密码,ip,端口号,数据库 # 2.建立游标(去数据库拿东西的工人) # 3.执行sql # 4.获取结果 # 5.关 ...
- python第三方库——xlrd和xlwt操作Excel文件学习
python第三方库——xlrd和xlwt操作Excel文件学习 1安装: C:\Users\Lenovo>pip install xlwtCollecting xlwt Downloadin ...
- python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...
- Python学习笔记(五)
Python学习笔记(五): 文件操作 另一种文件打开方式-with 作业-三级菜单高大上版 1. 知识点 能调用方法的一定是对象 涉及文件的三个过程:打开-操作-关闭 python3中一个汉字就是一 ...
- Python学习笔记之文件处理
1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...
- Python 学习笔记(下)
Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...
- [Python学习笔记]文件的读取写入
文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...
- Python学习笔记总结
目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
随机推荐
- BZOJ2595(状压dp)
要点 设\(f[i][j][k]\)为经过点\((i,j)\)且包含点集\(k\)的最小代价,其中k是指景点集合的枚举. 考虑有两种情况:1.点\((i,j)\)作为关键点连接了两个子集时\(f[i] ...
- Web自动化测试—PO设计模式(三)
test_case目录下面放你要执行的用例 目录结构 ui_auto_test --src --test_case --__init.py --test_login_case --pages --__ ...
- PIX 防火墙
---恢复内容开始--- 一 , PIX 防火墙的认识 PIX 是cisco 的硬件防火墙 硬件防火墙的工作速度快,使用方便. PIX 有很多型号,并发连接数是PIX防火墙的重要参数 PIX 25 ...
- 《深入理解java虚拟机》笔记(4)对象已死吗
一.垃圾回收器回收的对象 虚拟机内存区域中程序计数器.虚拟机栈.本地方法栈随线程而生,随线程而灭.这3个区域内存分配和回收都具备确定性.因此不需要过多考虑回收问题. 而Java堆和方法区不一样,这部分 ...
- Spark Mllib里使用贝氏二元分类时如何将数值特征字段用StandardScaler进行标准化(图文详解)
不多说,直接上干货! NaiveBayes数值特征字段一定要大于0,所以加入下述命令将负数转换为0. 朴素贝叶斯分类算法在进行数据标准化时,参数withMean必须设置为false. 具体,见 Had ...
- Linux用脚本守护进程
while true; do server=`ps -aux | grep tomcat | grep -v grep` if [ ! "$server" ]; then echo ...
- jquery显示隐藏效果
通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素toggle() 方法来切换 hide() 和 show() 方法. 1.hide()隐藏元素 $(se ...
- PHP实现正态分布的累积概率函数
在实际项目中,遇到需要正态分布算法去计算一个数值在整体的分布区间,例如: 100,90,80,70,60,50,40,30,20,10共10个数,按从高到低的顺序排序,总数的10%分布区域为极高频, ...
- 本号讯 | 永不消失的协作“空间站”开课;微软推出微软云Azure文档网站
8月29日,针对企业常面临的“协同办公”困难,开展以“还有这种操作?永不消失的协作'空间站'”为主题的协同办公培训课. 课程内容包含:在Office 365环境中,如何利用Teams与Groups等功 ...
- android测试开发环境搭建
本文档针对未接触过android的0基础人员,在开始熟悉android之前,首先需要一个学习环境来支撑,在此简单介绍一下android环境搭建.(当然大家也可以百度.谷歌,类似的文档很多) 环境搭建: ...