详解python中xlrd包的安装与处理Excel表格

771次阅读  |  发布于6年以前

一、安装xlrd

地址

下载后,使用 pip install .whl安装即好。

查看帮助:


    >>> import xlrd
    >>> help(xlrd)
    Help on package xlrd:

    NAME 
     xlrd

    PACKAGE CONTENTS 
     biffh
     book
     compdoc
     formatting
     formula
     info
     licences
     sheet
     timemachine
     xldate
     xlsx

    FUNCTIONS 
     count_records(filename, outfile=<idlelib.PyShell.PseudoOutputFile object at 0x0287E730>)

     dump(filename, outfile=<idlelib.PyShell.PseudoOutputFile object at 0x0287E730>, unnumbered=False)

     open_workbook(filename=None, logfile=<idlelib.PyShell.PseudoOutputFile object at 0x0287E730>, verbosity=0, use_mmap=1, file_contents=None, encoding_override=None, formatting_info=False, on_demand=False, ragged_rows=False)

    DATA 
     FMLA_TYPE_ARRAY = 4
     FMLA_TYPE_CELL = 1
     FMLA_TYPE_COND_FMT = 8
     FMLA_TYPE_DATA_VAL = 16
     FMLA_TYPE_NAME = 32
     FMLA_TYPE_SHARED = 2
     MMAP_AVAILABLE = 1
     USE_MMAP = 1
     XL_CELL_BLANK = 6
     XL_CELL_BOOLEAN = 4
     XL_CELL_DATE = 3
     XL_CELL_EMPTY = 0
     XL_CELL_ERROR = 5
     XL_CELL_NUMBER = 2
     XL_CELL_TEXT = 1
     __VERSION__ = '1.0.0'
     biff_text_from_num = {0: '(not BIFF)', 20: '2.0', 21: '2.1', 30: '3', ...
     empty_cell = empty:''
     error_text_from_code = {0: '#NULL!', 7: '#DIV/0!', 15: '#VALUE!', 23: ...
     oBOOL = 3
     oERR = 4
     oNUM = 2
     oREF = -1
     oREL = -2
     oSTRG = 1
     oUNK = 0
     okind_dict = {-2: 'oREL', -1: 'oREF', 0: 'oUNK', 1: 'oSTRG', 2: 'oNUM'...

    FILE 
     c:\python34\lib\site-packages\xlrd\__init__.py

通过上述方法可以查看xlrd的帮助信息,里面有xlrd包中的一些模块以及一些成员变量、常量、函数。

二、python处理Excel表格

1、打开Excel表


    import xlrd

    # 获取一个Book对象
    book = xlrd.open_workbook("1.xls")

    # 获取一个sheet对象的列表
    sheets = book.sheets()

    # 遍历每一个sheet,输出这个sheet的名字(如果是新建的一个xls表,可能是sheet1、sheet2、sheet3)
    for sheet in sheets: 
     print(sheet.name)

上面的帮助信息出现了这个函数:open_workbook(),打开工作簿,这就打开了Excel表。

返回的是一个Book对象,通过Book对象我们可以获得一个Sheet的列表,上面的程序就简单地把每个sheet的名字都输了出来。

2、读出指定单元格内的数据


    import xlrd

    # 获取一个Book对象
    book = xlrd.open_workbook("1.xls")

    # 获取一个sheet对象的列表
    sheets = book.sheets()

    # 遍历每一个sheet,输出这个sheet的名字(如果是新建的一个xls表,可能是sheet1、sheet2、sheet3)
    for sheet in sheets: 
     print(sheet.cell_value(0, 0))

读出单元格内数据函数 cell_value(row, col),行列均从0起。

除此之外,可以通过:


    sheet.cell(row, col) # 获取单元格对象 
    sheet.cell_type(row, col) # 获取单元格类型 

3、读取日期数据

如果Excel存储的某一个单元格数据是日期的话,需要进行一下处理,转换为datetime类型


    from datetime import datetime 
    from xlrd import xldate_as_tuple

    # 获取一个Book对象
    book = xlrd.open_workbook("1.xls")

    # 获取一个sheet对象的列表
    sheets = book.sheets()

    timeVal = sheets[0].cell_value(0,0)

    timestamp = datetime(*xldate_as_tuple(timestamp, 0))

    print(timestamp)

4、遍历每行的数据


    rows = sheet.get_rows() 
    for row in rows: 
     print(row[0].value) # 输出此行第一列的数据

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8