python操作Excel读写--使用x

发布时间:2019-09-06 08:57:35编辑:auto阅读(1569)

     

    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() 

    转自:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html

关键字