python 操作Excel文件
1 安装xlrd、xlwt、xlutils
cmd下输入:
pip install xlrd #读取excel
pip install xlwt #写入excel
pip install xlutils #操作 Excel 文件的实用工具,如复制、分割、筛选等
2 模块的基本用法:
xlrd模块用于读取excel文件内容,xlwt用于写入数据,xlutils复制
2.1 打开excel文件
myworkbook = xlwt.Workbook() #新建一个excel文件并打开
myworkbook = xlrd.open_workbook('文件路径', formatting_info = True)# 打开一个已存在的excel文件
在默认情况中,合并单元格只在最左上角的子单元格可以读取到值,其他都是空的,加上参数后formatting_info = True (这个只支持excel97-03的xls文件),sheet.merged_cells会返回当前表中所有合并单元格的信息,格式是像[(7,8,2,5),(1,3,4,5)...]这样的一个列表。其中每一项都是一个单元格,比如(7,8,2,5)的意思是这个sheet中的第七行的第2-4列合并,和序列的分片操作一样,是算头不算尾,所以7,8是指合并的仅第七行(这个7不是index而是index+1),2,5则表示第二列到第四列,不包括第五列。这个“不算尾”的做法是区别于xlwt模块中的合并单元格处理的。
2.2 复制一个excel对象
from xlutils.copy import copy
import xlrd
import xlwt
from xlutils.copy import copy
oldWb = xlrd.open_workbook("test.xlsx");#先打开已存在的表
newWb = copy(oldWb)#复制
newWs = newWb.get_sheet(2);#取sheet表
newWs.write(2, 4, "pass");#写入 2行4列写入pass
newWb.save(“bbb.xls"); #保存为bbb.xls
2.3 添加excel工作表
mySheet = myworkbook.add_sheet(“sheet”)
2.4 获取excel工作表sheet
sheet_list = workbook.sheet_names() #返回所有sheet的列表
mysheet = sheet_list[0] #获取sheet 列表后,通过索引获取sheet
mysheet = workbook.sheet_by_index(0) #通过index来获得一个sheet对象,index从0开始算起
mysheet = workbook.sheet_by_name(“sheet1”) #根据sheet名获得相应的那个sheet对象
2.5 获取表名,行数和列数
mysheetname = sheet.name
nrows = mysheet.nrows
ncols = mysheet.ncols
2.6 获取一行和一列
rowvalue = mySheet.row_values(i) # i是行数,从0开始计数,返回list对象。
colvalues = mySheet.col_values(i) # i是列数,从0开始计数,返回list对象。
sheet.get_rows() # 返回一个迭代器,遍历所有行,给出每个行的值列表
sheet.row(index) # 返回一个row对象,可以通过row[index]来获取这行里的单元格cell对象
sheet.col_values(index) # 返回某一列的值列表
2.7 获取单元格数据
mycell = mySheet.cell(i, j) # 获取单元格,i是行数,j是列数,行数和列数都是从0开始计数。
mycell_value = mycell.value #通过单元格获取单元格数据。
mycell_value = mysheet.cell(i, j) #直接获取单元格数据,i是行数,j是列数,行数和列数都是从0开始计数。
sheet.cell_value(x,y) #直接获取单元格数据,i是行数,j是列数,行数和列数都是从0开始计数。
sheet.row(x)[y].value #直接获取单元格数据,i是行数,j是列数,行数和列数都是从0开始计数。
2.8 获取单元格属性
cell(i, j).ctype # 返回该单元格数据类型的代码(0表示空,1表示string,2表示number,3表示date,4表示boolean,5表示error)。
当ctype == 3 时,虽是日期,但那时python是按照float来处理的,需要用xldate_as_tuple方法来将其转化为日期格式,
这个方法的用法就是xlrd.xldate_as_tuple(xldate,datemode), xldate表示一个ctype是3的一个值,datemode是属于workbook的一个属性。
2.9 写入数据
mysheet.write(2, 0, 1) #写入A3,数值等于1
mysheet.write(2, 1, 1) #写入B3,数值等于1
mysheet.write(2, 2, xlwt.Formula("A3+B3")) #写入C3,数值等于2(A3+B3)
mystyle = xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00') #单元格样式
mysheet.write(2,1,”aaaaa”, mystyle) #写入B3,值等于“aaaaa”,并且单元格样式为mystyle样式
2.10 保存
mybook.save(r"C:\Users\wa\Desktop\test.xls")
2.11 单元格样式设置
myStyle = xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00')
样式用的模块:
style = xlwt.XFStyle() # 样式的base,通过style.属性 来设置单元格属性:
style.font # 设置字体
style.alignment # 设置对齐方式
style. pattern #设置背景色
style. border #设置边框
import xlwt
def def_style():
style = xlwt.XFStyle()
# 这部分设置字体
font = xlwt.Font()
# 字体
font.name = 'Times New Roman'
# 设为粗体
font.bold = 'True '
# 字体高度
font.height = ''
# 字号
font.size = ''
# 字体颜色
font.colour_index = 0x40
style.font = font
# 这部分设置居中格式
alignment = xlwt.Alignment()
# 水平居中
alignment.horz = xlwt.Alignment.HORZ_CENTER
# 垂直居中
alignment.vert = xlwt.Alignment.VERT_CENTER
style.alignment = alignment
# 设置背景颜色
ptn = xlwt.Pattern()
# 设置背景色
ptn.pattern = xlwt.Pattern.SOLID_PATTERN
ptn.pattern_fore_colour = 0x40
style.pattern = ptn
# 设置边框
borders = xlwt.Borders()
borders.left = 1
borders.right = 1
borders.top = 1
borders.bottom = 1
style.borders = borders
return style
xlwt.Styles的color_map的部分参考值:
aqua 0x31
black 0x08
blue 0x0C
blue_gray 0x36
bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12
dark_blue_ega 0x12
dark_green 0x3A
dark_green_ega 0x11
dark_purple 0x1C
dark_red 0x10
dark_red_ega 0x10
dark_teal 0x38
dark_yellow 0x13
gold 0x33
gray_ega 0x17
gray25 0x16
gray40 0x37
gray50 0x17
gray80 0x3F
green 0x11
ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34
light_turquoise 0x29
light_yellow 0x2B
lime 0x32
magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13
olive_green 0x3B
orange 0x35
pale_blue 0x2C
periwinkle 0x18
pink 0x0E
plum 0x3D
purple_ega 0x14
red 0x0A
rose 0x2D
sea_green 0x39
silver_ega 0x16
sky_blue 0x28
tan 0x2F
teal 0x15
teal_ega 0x15
turquoise 0x0F
violet 0x14
white 0x09
yellow 0x0D
python 操作Excel文件的更多相关文章
- python操作excel文件一(xlrd读取文件)
一般做接口测试,会把参数和一些数据放入excel表中,这样就不会重新编译代码,提高效率.一般如何操作呢?接下来跟着步骤一起学习吧 执行步骤: 1.首先要安装 xlrd这个模块,用 pip instal ...
- 【python小记】python操作excel文件
题记: 最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本 ...
- 使用Python操作excel文件
使用的类库 pip install openpyxl 操作实现 工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 w ...
- python操作Excel文件
参考: http://www.cnblogs.com/tianyajuanke/p/4048844.html http://blog.chinaunix.net/uid-24701781-id-334 ...
- python第三方库——xlrd和xlwt操作Excel文件学习
python第三方库——xlrd和xlwt操作Excel文件学习 1安装: C:\Users\Lenovo>pip install xlwtCollecting xlwt Downloadin ...
- 用Python的pandas框架操作Excel文件中的数据教程
用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...
- 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)
前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...
- [转载]python操作excel使用win32com
原文链接:http://blog.163.com/yang_jianli/blog/static/16199000620138532243782/ 使用COM接口,直接操作EXCEL(只能在Win上) ...
- python操作excel表格(xlrd/xlwt)
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
随机推荐
- 解决 VS2019 打开 edmx 文件时没有 Diagram 视图的 Bug
问题描述 安装 VS 2019 (版本:16.0.2)后,发现更新选项中已经没有 “Entity Framework 6.X 工具” 了,打开 .edmx 文件时,呈现的视图是 xml 视图. 解决方 ...
- eggjs 框架代理调试 SELF_SIGNED_CERT_IN_CHAIN 报错解决方案
eggjs 中的 this.ctx.curl 可以发起一个请求,配置 proxy 可以很方面的通过接口进行问题定位.代理方式如下: 1.开启 egg-development-proxyagent ,配 ...
- oracle无法插入数据
最近遇到一个问题,本来插入数据好好的,突然都不能插入了. 报错------------------->ora-01653:表无法通过128(在表空间)扩展 原因是表满了!!! 解决方案: 1. ...
- 从壹开始前后端分离 [ vue + .netcore 补充教程 ] 三十║ Nuxt实战:动态路由+同构
上期回顾 说接上文<二九║ Nuxt实战:异步实现数据双端渲染>,昨天咱们通过项目二的首页数据处理,简单了解到了 nuxt 异步数据获取的作用,以及亲身体验了几个重要文件夹的意义,整篇文章 ...
- ASP.NET Core中使用GraphQL - 第八章 在GraphQL中处理一对多关系
ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间 ...
- service相关
本篇仍以问题为驱动 一.什么时Service? Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件.Ser ...
- dev Gridcontrol控件属性部分
XtraGrid的关键类就是:GridControl和GridView.GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXView中.GridContro ...
- 关于Exceptionless的使用注意
大家都应该比较熟悉NLOG,我们知道log4net和nlog,也有其它的记日志框架.目前我们的生产环境使用nlog,而且对Exceptionless的对接也是无缝的.可能有人会问为什么不用ELK,主要 ...
- CVE-2017-1000405 利用脏牛漏洞Linux提权复现
当前路径: /var/www 磁盘列表: / 系统信息: Linux zico 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 ...
- elasticsearch health yellow
csdn博客地址(已测试过):https://blog.csdn.net/yangyangrenren/article/details/81100836 官方地址:https://www.elasti ...