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()
  • 相关阅读:
    LeetCode 769. Max Chunks To Make Sorted
    LeetCode 845. Longest Mountain in Array
    LeetCode 1059. All Paths from Source Lead to Destination
    1129. Shortest Path with Alternating Colors
    LeetCode 785. Is Graph Bipartite?
    LeetCode 802. Find Eventual Safe States
    LeetCode 1043. Partition Array for Maximum Sum
    LeetCode 841. Keys and Rooms
    LeetCode 1061. Lexicographically Smallest Equivalent String
    LeetCode 1102. Path With Maximum Minimum Value
  • 原文地址:https://www.cnblogs.com/Roger1227/p/3192128.html
Copyright © 2011-2022 走看看