zoukankan      html  css  js  c++  java
  • python中的xlrd 和xlwt资料集合

    python操作Excel读写--使用xlrd


    注:可以参考我的github中的代码:getCellValue.py,这里可以看到如何从一个excel表格中取某个单元格的值(可以按单元格的标题取)

    一、安装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()
    复制代码



  • 相关阅读:
    【今日CV 视觉论文速览】 19 Nov 2018
    【numpy求和】numpy.sum()求和
    【今日CV 视觉论文速览】16 Nov 2018
    【今日CV 视觉论文速览】15 Nov 2018
    poj 2454 Jersey Politics 随机化
    poj 3318 Matrix Multiplication 随机化算法
    hdu 3400 Line belt 三分法
    poj 3301 Texas Trip 三分法
    poj 2976 Dropping tests 0/1分数规划
    poj 3440 Coin Toss 概率问题
  • 原文地址:https://www.cnblogs.com/double12gzh/p/10166230.html
Copyright © 2011-2022 走看看