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读写)的更多相关文章

  1. Python学习笔记_Mysql数据库、Excel

    一.操作mysql数据库 import pymysql # 1.连上数据库:账号,密码,ip,端口号,数据库 # 2.建立游标(去数据库拿东西的工人) # 3.执行sql # 4.获取结果 # 5.关 ...

  2. python第三方库——xlrd和xlwt操作Excel文件学习

    python第三方库——xlrd和xlwt操作Excel文件学习 1安装: C:\Users\Lenovo>pip install xlwtCollecting xlwt  Downloadin ...

  3. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  4. Python学习笔记(五)

    Python学习笔记(五): 文件操作 另一种文件打开方式-with 作业-三级菜单高大上版 1. 知识点 能调用方法的一定是对象 涉及文件的三个过程:打开-操作-关闭 python3中一个汉字就是一 ...

  5. Python学习笔记之文件处理

    1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...

  6. Python 学习笔记(下)

    Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...

  7. [Python学习笔记]文件的读取写入

    文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...

  8. Python学习笔记总结

    目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...

  9. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  10. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

随机推荐

  1. Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C

    You are given set of n points in 5-dimensional space. The points are labeled from 1 to n. No two poi ...

  2. 51nod1222最小公倍数计数

    51nod1222 http://210.33.19.103/contest/1113/problem/2 同学的神仙做法: 首先考虑先去掉X<=Y的限制,也就是先计算满足要求的任意有序pair ...

  3. php操作redis和memcache过期时间

    php-redis 设置过期时间setTimeOut 命令行expireredis过期时间redis术语里面,把设置了expire time的key 叫做:volatile keys. 意思就是不稳定 ...

  4. byte取高4位,低4位,byte转int

    byte abyte =-1; System.out.println(abyte); System.out.println(Integer.toBinaryString(abyte)); //取高四位 ...

  5. PHP是.NET上的一门开发语言

    .NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言   12月23日,由开源中国联合中国电子技术标准化研究院主办的2017源创会年终盛典在北京万豪酒店顺利举行.在本次大 ...

  6. vue or react mvvm里的文字上下滚动

    1.jQuery 时候实现 上下滚动很简单,基本上一个animateTop就可以了 2. vue等MVVM就有些麻烦了,因为不推荐操作DOM,专注于数据 我们可以使用 css3 transition: ...

  7. [转]c# 泛类型(泛型) 以及强类型与弱类型的 理解及优化

    [泛型的概念](1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大.(2)使用泛型时不需要通过obje ...

  8. 如何在github中的readme.md加入项目截图

    1. 先在之前的本地项目文件夹里创建一个存放截图的文件夹.(如img文件夹) 2. 将新增的内容通过github desktop上传到github中 3. 在github中立马能看到刚刚上传的图片,打 ...

  9. 设置Cookie最大存活时间

    Cookie和Session都是由Tomcat自动创建的对象,Cookie的默认最大存活时间是 -1 ,即当浏览器关闭时Cookie就消失了:Session的默认最大存活时间是30分钟. 使用Sess ...

  10. Centos离线安装Docker并加入到Swarm管理节点

    以root用户登录 加入Swarm前需要在Swarm上生成Token,所以需要提前将Swarm集群搭建完成后,再运行以下命令将各虚机加入到swarm节点 下载docker离线安装包,并拷贝到/root ...