python中 xlrd/xlwt模块详解

1、什么是xlrd模块

python操作excel主要用到xlrd和xlwt两个库,即xlrd是读excel,xlwt是写excel库

一、安装xlrd模块

cmd窗口下 pip install xlrd

二、使用介绍

# -*- coding=utf-8 -*-import xlrd  #导入读excel的模块#打开excel
filename='C:/Users/YKDZ065/PycharmProjects/0830/jianlc/cases/Test.xlsx'
data=xlrd.open_workbook(filename,"rb")#获取excel工作表
mysheets=data.sheets() #获取工作表list#通过索引获取第一个sheet
mysheet=mysheets[0]#通过索引顺序获取
#mysheet=data.sheet_by_index(0)#通过名称获取
#mysheet=data.sheet_by_name(u'Sheet1')#获取行数和列数
nrows=mysheet.nrows
print nrows
ncols=mysheet.ncols
print ncols#获取一行和一列
#myRowValues=mysheet.row_values(0)
#print myRowValues
#myColValues=mysheet.col_values(0)
#print myColValues#读取单元格数据
for i in range(ncols):for j in range(nrows):myCell=mysheet.cell(j,i)myCellValue=myCell.valueprint myCellValue

2、使用xlwt模块写入excel文件

# -*- coding=utf-8 -*-
#导入模块
import  xlwt#创建excel工作薄
myWorkbook=xlwt.Workbook()#添加Excel工作表
mySheet=myWorkbook.add_sheet("a Test Sheet")#写入数据
myStyle=xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00') #数据格式
mySheet.write(1,1,1234.56,myStyle)
mySheet.write(2,0,1)
mySheet.write(2,1,1)
mySheet.write(2,2,xlwt.Formula("A3+B3"))myWorkbook.save("excelFile.xlsx")

3、xlutils结合xlrd可以达到修改excel文件目的

# -*-  coding=utf-8  -*-
#修改excel文件
#导入包
import  xlrd
from xlutils.copy import copy
filename='C:/Users/YKDZ065/PycharmProjects/0830/jianlc/cases/Test.xlsx'
workbook=xlrd.open_workbook(filename)
workbooknew=copy(workbook)
ws=workbooknew.get_sheet(0)
ws.write(0,1,"changed")
workbooknew.save("Testcopy.xlsx")
# -*- coding=utf-8 -*-
# author=zyq
import  xlrd #读excel的模块
import xlwt  #写excel的模块
#操作excel文件

def opExcel():filename='excelFile.xlsx'  #定义一个excel文件
    excelFile=xlrd.open_workbook(filename)  #打开excel文件

    table=excelFile.sheets()[0] #通过索引获取第一个sheet表
    #table=excelFile.sheet_by_index(0) #通过索引获取第一个sheet表
    #table=excelFile.sheet_by_name(u"a Test Sheet")# 通过名字获取sheet表

    #获取整行的值
    print table.row_values(0) #获取第一行的值,以列表的形式返回
    print table.col_values(0)  #获取第一列的值,以列表的形式返回

    #获取行数和列表
    print table.nrows #获取行数
    print table.ncols  #获取列表

    #根据行数遍历所有行数的值
    for i in range(table.nrows):print table.row_values(i)#获取单元格的值
    cell_A1=table.cell(0,0).value  #获取A1位置的数据,行和列的所有位置都是从0开始的
    print cell_A1#使用行列所有确定单元格的数据
    cell_A1=table.row(0)[0].valueprint cell_A1#获取所有单元格的值
    for i in range(table.nrows):for j in range(table.ncols):print table.cell(i,j).valueopExcel()
# 对excel的写操作
def writeExcel():#创建excel
    mybook=xlwt.Workbook()#添加excel工作表
    mySheet=mybook.add_sheet("a")#写入数据
    mySheet.write(4,4,'test')mybook.save("1.xlsx")
writeExcel()

# -*- coding: utf-8 -*-
import  xdrlib ,sys
import xlrd
def open_excel(file= 'file.xls'):
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception,e:
        print str(e)
#根据索引获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_index:表的索引
def excel_table_byindex(file= 'file.xls',colnameindex=0,by_index=0):
    data = open_excel(file)
    table = data.sheets()[by_index]
    nrows = table.nrows #行数
    ncols = table.ncols #列数
    colnames =  table.row_values(colnameindex) #某一行数据
    list =[]
    for rownum in range(1,nrows):

row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i]
             list.append(app)
    return list

#根据名称获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_name:Sheet1名称
def excel_table_byname(file= 'file.xls',colnameindex=0,by_name=u'Sheet1'):
    data = open_excel(file)
    table = data.sheet_by_name(by_name)
    nrows = table.nrows #行数
    colnames =  table.row_values(colnameindex) #某一行数据
    list =[]
    for rownum in range(1,nrows):
         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i]
             list.append(app)
    return list

def main():
   tables = excel_table_byindex()
   for row in tables:
       print row

tables = excel_table_byname()
   for row in tables:
       print row

if __name__=="__main__":
    main()

python中 xlrd/xlwt模块详解相关推荐

  1. Python中使用httpx模块详解

    导入httpx In [25]: import httpx 获取一个网页 In [26]: r = httpx.get("https://httpbin.org/get")In [ ...

  2. python中json模块博客园_Python中的Json模块详解

    Python中的Json模块详解 Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点.许多主流的编程语言都在用它来进 ...

  3. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

  4. Python之ruamel.yaml模块详解(三)| ruamel.yaml与pyyaml的区别

    Python之ruamel.yaml模块详解(三)| ruamel.yaml与pyyaml的区别 12 默认支持Yaml1.2 13 Py2和Py3重新整合 14 修复 15 测试 16 API 接前 ...

  5. 站长在线Python精讲:在Python中函数的调用详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中函数的调用详解>.本文的主要内容有:调用函数的基本语法和调用自定义函数的实例讲解. 目录 1.调用函数的基本 ...

  6. 站长在线Python精讲:Python中正则表达式的语法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中正则表达式的语法详解>.本知识点主要内容有9点:行定位符.元字符.限定符.字符集.排除字符.选择字符.转义字符 ...

  7. python中的super用法详解_【Python】【类】super用法详解

    一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...

  8. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

  9. python classmethod_对Python中的@classmethod用法详解

    在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法. 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的. 不过还是好奇去查了一下. 大致可以 ...

最新文章

  1. 开源社区的危机:拒绝被“白嫖”?2大著名项目遭作者破坏
  2. TIOBE 1月编程语言排行榜:C语言再度「C 位」出道,Python惜败
  3. python字典多层嵌套
  4. vc2005编译ffmpeg以及ffplay
  5. VirtraulBox中安装Ubuntu16.04
  6. js除法与C语言除法,JS算术运算符及用法
  7. 基于nuxt和iview搭建OM后台管理系统实践(2)-quill富文本组件的封装
  8. Markdown编辑器模板
  9. 雷军曾被马云夫人张瑛数落一个多小时?当事人回应:都是谣言
  10. WEB测试总结 (架构,设计)精华部分(转)
  11. 基于高斯分布和OneClassSVM的异常点检测
  12. WPF Grid布局
  13. python类中的self参数和cls参数
  14. Oracle学习技巧
  15. oracle imdmp方式导入dmp文件
  16. 360的网络流量监测
  17. IBM 开源图形终端Kui框架
  18. Mac之MySQL初始数据库密码问题
  19. Java实现矩阵运算——矩阵乘法、矩阵转置、自动填充矩阵行
  20. grpc、https、oauth2等认证专栏实战17:grpc-go自定义认证之base64验证介绍

热门文章

  1. [含论文+源码等]基于HTML5,DIV CSS实现的宠物狗个性化服务网站前端(静态网页毕业设计)web前端毕设
  2. Python爬音乐--qq
  3. 解决unix:///var/run/supervisor/supervisor.sock no such file问题
  4. Linux中搭建 Postfix 邮件服务器
  5. June 18(th)
  6. 【强烈推荐】人工智能系列文章推送公告!!!
  7. git的一些基本命令总结
  8. Python(py3fdfs)上传到fastdfs配置store_serv.ip_addr问题
  9. 存储故障时的ORA-7445错误
  10. Windows Server 2008 R2 安装SP1补丁出错(0x800f0818)