zoukankan      html  css  js  c++  java
  • python获取Excel数据

    Python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取excel是不能对其进行操作的,详细的介绍,基本上都在代码中写明

    直接放代码:

    #coding=utf8
    # 导入xlrd模块
    import xlrd
    from xlutils.copy import copy
    #设置文件名和路径
    fname = 'd:/TestData.xlsx'
    # 打开文件
    filename = xlrd.open_workbook(fname)
    #获取当前文档的表(得到的是sheet的个数,一个整数)
    sheets=filename.nsheets
    
    
    
    #获取sheet对象,方法有3种:
    # 第一种:#通过sheet名字来获取,当然如果你知道sheet名字了可以直接指定
    # 得到的是一个列表集合[u'etsy_sheet']
    sheet_list = filename.sheet_names()
    #获取指定的sheet名的表,sheet结果:(<xlrd.sheet.Sheet object at 0x027FC890>)
    # 找不到报错:xlrd.biffh.XLRDError: No sheet named <'etsy_sheet1'>
    # sheet=filename.sheet_by_name(sheet_list[0])
    
    #第二种
    # sheet=filename.sheet_by_index(0)     #通过sheet索引获得sheet对象
    # 第三种:
    sheet = filename.sheets()[0] #通过sheet索引获得sheet对象
    # print sheet
    #获取行数
    nrows = sheet.nrows
    # 获取列数
    ncols = sheet.ncols
    #获取第一行,第一列数据数据
    cell_value = sheet.cell_value(1,1)
    '''
    ###除了cell值内容外还有附加属性,如:
    'likai:输出text:"likai"  或者
    2018-1-25 13:44:49输出xldate:43125.57278935185
    
    '''
    ###除了cell值内容外还有附加属性,如:text:"likai"后者2018-1-25 13:44:49输出xldate:43125.57278935185
    cell_value1 = sheet.cell(3,0)
    print cell_value1
    
    #获取第一行数据
    row_data = sheet.row_values(1)
    #获取第一列,第四行一下的数据
    col_data = sheet.col_values(0,4)
    #获取各行数据
    row_list=[]
    for i in range(0,nrows):
        row_datas = sheet.row_values(i)
        row_list.append(row_datas)
    # print row_list
    
    
    


    对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了,当然可以一行一行的将数据读取出来,然后在保存,除此之外,还有一个直接copy,将所有的数据copy到另外一个表中,使用一个xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已

    #文件copy
    wb = copy(filename)#<xlwt.Workbook.Workbook object at 0x025EE1F0>
    new_sheet = wb.get_sheet(0)#<xlwt.Worksheet.Worksheet object at 0x027F3EB0>#此时new_sheet和原表内容一样,可以再扩充
    new_sheet.write(3,3,"new wenjian")
    wb.save("d:/TestData1.xlsx")

  • 相关阅读:
    android: 在android studio中使用retrolambda的步骤
    Shiro基础知识03----shiro授权(编程式授权),Permission详解,授权流程(zz)
    [Android] 关于Android的问号?和@符号的用法
    20170506 《摔跤吧,爸爸》观影笔记
    Android关于log日志,华为不输出log.v,log.d(zz)
    阅读日志:协鑫一年的多晶硅料产能能够生产做少装机容量的组件?
    《周鸿祎自述》读书笔记
    使用promise 和 generator来管理工作流
    读书笔记,《刻意练习》,第三章,心理表征
    读书笔记,《刻意练习》,第四章,黄金标准
  • 原文地址:https://www.cnblogs.com/mxhmxh/p/9367680.html
Copyright © 2011-2022 走看看