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文件的更多相关文章

  1. python操作excel文件一(xlrd读取文件)

    一般做接口测试,会把参数和一些数据放入excel表中,这样就不会重新编译代码,提高效率.一般如何操作呢?接下来跟着步骤一起学习吧 执行步骤: 1.首先要安装 xlrd这个模块,用 pip instal ...

  2. 【python小记】python操作excel文件

    题记: 最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本 ...

  3. 使用Python操作excel文件

    使用的类库 pip install openpyxl 操作实现 工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 w ...

  4. python操作Excel文件

    参考: http://www.cnblogs.com/tianyajuanke/p/4048844.html http://blog.chinaunix.net/uid-24701781-id-334 ...

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

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

  6. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  7. 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)

    前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...

  8. [转载]python操作excel使用win32com

    原文链接:http://blog.163.com/yang_jianli/blog/static/16199000620138532243782/ 使用COM接口,直接操作EXCEL(只能在Win上) ...

  9. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

随机推荐

  1. 【JavaScript动画基础】学习笔记(一)-- 旋转箭头

    随着鼠标的移动旋转箭头. requestAnimationFrame 在requestAnimationFrame之前我们可以用setInterval来实现动画的循环: function drawFr ...

  2. require.js简单入门

    推荐文章:http://www.ruanyifeng.com/blog/2012/11/require_js.html 1.以下例子主要实现功能, 1)引用jq库获取dom中元素文本, 2)实现并引用 ...

  3. Oracle11g创建表空间、创建用户、角色授权、导入导出表以及中文字符乱码问题

    [转载]原文地址:https://www.cnblogs.com/bjh1117/p/6605037.html 前提:本机已经安装了Oracle11g数据库. 需求:使用PL SQL数据库连接工具操作 ...

  4. python爬虫数据解析之BeautifulSoup

    BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. BeautfulSoup是python爬虫三 ...

  5. mysql优化一之查询优化

    这一篇笔记的mysql优化是注重于查询优化,根据mysql的执行情况,判断mysql什么时候需要优化,关于数据库开始阶段的数据库逻辑.物理结构的设计结构优化不是本文重点,下次再谈 查看mysql语句的 ...

  6. 机器学习——logistic回归,鸢尾花数据集预测,数据可视化

    0.鸢尾花数据集 鸢尾花数据集作为入门经典数据集.Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理.Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含150个数 ...

  7. JavaScript夯实基础系列(一):词法作用域

      作用域是一组规则,规定了引擎如何通过标识符名称来查询一个变量.作用域模型有两种:词法作用域和动态作用域.词法作用域是在编写时就已经确定的:通过阅读包含变量定义的数行源码就能知道变量的作用域.Jav ...

  8. Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比

    pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...

  9. [翻译]Mock 在 Python 中的使用介绍

    目录 Mock 在 Python 中的使用介绍 原文链接与说明 恐惧系统调用 一个简单的删除函数 使用 Mock 重构 潜在陷阱 向 'rm' 中加入验证 将文件删除作为服务 方法 1:模拟实例的方法 ...

  10. MySQL优化小建议

    背景 "那啥,你过来一下!" "怎么了?我代码都单元测试了的,没出问题啊!"我一脸懵逼跑到运维大佬旁边. "你看看!你看看!多少条报警,赶快优化一下! ...