从excel中读取数据的python代码

#coding:utf-8
import os
import xlrd
from common.path import dataPath 
from common.setlog import log
class ReadExcel(object):
    def __init__(self,fileName,sheetName):
      try:
          self.dataFile = os.path.join(dataPath, fileName)
          self.workBook = xlrd.open_workbook(self.dataFile)
          self.sheetName = self.workBook.sheet_by_name(sheetName)
          self.log=log()          
      except Exception:
          self.log.exception('文件读取失败,请检查文件或是表名是否存在')
          raise
      else:
          self.log.info('文件读取成功')

读excel中某个单元格的数据

   def readExcel(self,rownum,colnum):
        try:
            value = self.sheetName.cell(rownum,colnum).value
        except Exception:
            self.log.exception('读取数据数据失败,请查看定位文本框是否存在有效的值')
            raise
        return value

#读excel中某个表的某一行数据,以列表返回,元素之间用逗号隔开的
    def readnrows(self,row):
        try:
          row_value=self.sheetName.row_values(row)
        except Exception:
            self.log.exception('该表有效的数据行为%s行,而输入的行数为%s,请检查!'%(row,self.sheetName.nrows))
            raise
        return row_value
      
#读excel中某个表的某一列数据,以列表返回,元素之间用逗号隔开的
    def readncols(self,col):
        try:
          col_value=self.sheetName.col_values(col)
        except Exception:
            self.log.exception('该表有效的数据列为%s列,而输入的列数为%s,请检查!'%(col,self.sheetName.ncols))
            raise
        return col_value

读excel中某个表的所有数据,以列表返回,列表的每个元素也为一个列表,里面为每行的值,元素之间用逗号隔开的

    def readsheet(self):
        # 创建一个空的List,单独读取每一行或是每一列都是一个列表,那么读取全部那就是将每一行每一列存入一个列表中
        row_list=[]
        # 获取一个sheet的值
        '''
        1、sheet.nrows: 工作表中有值总行数
        2、sheet.ncols:工作表中有值总列数
        3、sheet.row_values(rowx, start_colx=0, end_colx=None):返回给定行中单元格值的一部分(开始行,开始列默认是0,结束列)
        '''
        try:
          for i in range(1, self.sheetName.nrows):
              row_value=self.sheetName.row_values(i, 0, self.sheetName.ncols-1)
              row_list.append(row_value)
          return row_list
        except Exception:
          self.log.exception('读取表数据失败,请检查表是否存在')  
          
if __name__ == '__main__':
    cellValue = ReadExcel('Data.xls','logindata')
    value=cellValue.readnrows(2)  #注意这里是从0开始的
    print(value)

关注的点:

1、table.nrows: 工作表中有值总行数

2、table.ncols:工作表中有值总列数

3、读取某个单元值:value = self.sheetName.cell(rownum,colnum).value

4、读取指定行(返回的是一个列表):row_value=self.sheetName.row_values(row)

5、读取指定列(返回的是一个列表):col_value=self.sheetName.col_values(col)

6、读取整个表的值(返回的是一个列表,只不过元素也是列表):

for i in range(1, self.sheetName.nrows):
      row_value=self.sheetName.row_values(i, 0, self.sheetName.ncols-1)
      row_list.append(row_value)
return row_list
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值