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()
    复制代码
  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/hdk1993/p/7236947.html
Copyright © 2011-2022 走看看