zoukankan      html  css  js  c++  java
  • python操作Excel读写--使用xlrd

    一、安装xlrd模块

       到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

    二、使用介绍

      1、导入模块

          import xlrd

       2、打开Excel文件读取数据

           data = xlrd.open_workbook('excelFile.xls')

       3、使用技巧

            获取一个工作表

            table = data.sheets()[0]          #通过索引顺序获取
     
            table = data.sheet_by_index(0) #通过索引顺序获取
            table = data.sheet_by_name(u'Sheet1')#通过名称获取
     
            获取整行和整列的值(数组)
       
             table.row_values(i)
     
             table.col_values(i)
     
            获取行数和列数
      
            nrows = table.nrows
     
            ncols = table.ncols
           
            循环行列表数据
            for i in range(nrows ):
          print table.row_values(i)
     
    单元格
    cell_A1 = table.cell(0,0).value
     
    cell_C4 = table.cell(2,3).value
     
    使用行列索引
    cell_A1 = table.row(0)[0].value
     
    cell_A2 = table.col(1)[0].value
     
    简单的写入
    row = 0
     
    col = 0
     
    # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
    ctype = 1 value = '单元格的值'
     
    xf = 0 # 扩展的格式化
     
    table.put_cell(row, col, ctype, value, xf)
     
    table.cell(0,0)  #单元格的值'
     
    table.cell(0,0).value #单元格的值'
     

    三、Demo代码

       Demo代码其实很简单,就是读取Excel数据。

       

     1 # -*- coding: utf-8 -*-   2 import  xdrlib ,sys
     3 import xlrd
     4 def open_excel(file= 'file.xls'):
     5     try:
     6         data = xlrd.open_workbook(file)
     7         return data
     8     except Exception,e:
     9         print str(e)
    10 #根据索引获取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的所以 ,by_index:表的索引 11 def excel_table_byindex(file= 'file.xls',colnameindex=0,by_index=0):
    12     data = open_excel(file)
    13     table = data.sheets()[by_index]
    14     nrows = table.nrows #行数 15     ncols = table.ncols #列数 16     colnames =  table.row_values(colnameindex) #某一行数据  17     list =[]
    18     for rownum in range(1,nrows):
    19 
    20          row = table.row_values(rownum)
    21          if row:
    22              app = {}
    23              for i in range(len(colnames)):
    24                 app[colnames[i]] = row[i] 
    25              list.append(app)
    26     return list
    27 
    28 #根据名称获取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的所以 ,by_name:Sheet1名称 29 def excel_table_byname(file= 'file.xls',colnameindex=0,by_name=u'Sheet1'):
    30     data = open_excel(file)
    31     table = data.sheet_by_name(by_name)
    32     nrows = table.nrows #行数  33     colnames =  table.row_values(colnameindex) #某一行数据  34     list =[]
    35     for rownum in range(1,nrows):
    36          row = table.row_values(rownum)
    37          if row:
    38              app = {}
    39              for i in range(len(colnames)):
    40                 app[colnames[i]] = row[i]
    41              list.append(app)
    42     return list
    43 
    44 def main():
    45    tables = excel_table_byindex()
    46    for row in tables:
    47        print row
    48 
    49    tables = excel_table_byname()
    50    for row in tables:
    51        print row
    52 
    53 if __name__=="__main__":
    54     main()
  • 相关阅读:
    June. 26th 2018, Week 26th. Tuesday
    June. 25th 2018, Week 26th. Monday
    June. 24th 2018, Week 26th. Sunday
    June. 23rd 2018, Week 25th. Saturday
    June. 22 2018, Week 25th. Friday
    June. 21 2018, Week 25th. Thursday
    June. 20 2018, Week 25th. Wednesday
    【2018.10.11 C与C++基础】C Preprocessor的功能及缺陷(草稿)
    June.19 2018, Week 25th Tuesday
    June 18. 2018, Week 25th. Monday
  • 原文地址:https://www.cnblogs.com/SZLLQ2000/p/5411711.html
Copyright © 2011-2022 走看看