- 安装模块
- 导入模块
- 打开excel文件,获取数据
- 获取数据表的数据(某一个具体的sheet)
- 获取表名称
- 获取行,列数量
- 获取行,列的值
- 获取单元格的值
- 综合示例
1、安装模块
pip install xlrd
2、导入模块
import xlrd
3、打开excel文件
data=xlrd.open_workbook(self.file_name)
4、获取数据表的数据
tables=data.sheets()[self.sheet_id]
5、获取表名称
name=table.name
6、获取行、列数量
nrows = table.nrows nclos = table.ncols
7、获取某行、列的值
row_value=tables.row_value(i) col_value=tables.col_value(i)
8、获取单元格的值
cellvalue = table.cell(row,col).value cellvalue = table.cell_value(row,col)
9、综合示例
import xlrd from xlutils.copy import copy class OperateExcel: def __init__(self,sheet_id=None,file_name=None): if file_name: self.file_name=file_name self.sheet_id=sheet_id # self.tables=self.get_data() else: self.file_name='../dataconfig/case1.xls' self.sheet_id=0 self.data=self.get_data() #获取表格数据(sheet的内容) def get_data(self): data=xlrd.open_workbook(self.file_name) tables=data.sheets()[self.sheet_id] return tables #获取行数 def get_lines(self): lines=self.get_data().nrows return lines #获取某一个单元格内容 def get_cellValue(self,row,col): value=self.get_data().cell(row,col).value return value #写入数据 def write_value(self,row,col,value): ori_data=xlrd.open_workbook(self.file_name) copy_data=copy(ori_data) sheet_data=copy_data.sheets()[0] sheet_data.write(row,col,value) copy_data.save(self.file_name) #根据对应的case_id找到对应行的内容(需要先找到行号) def get_row_data(self,case_id): row_num=self.get_row_data(case_id) row_data=self.data.row_values(row_num) return row_data #根据对应的case_id找到对应的行号 def get_row_num(self,case_id): num=0 col_value=self.get_col_data() for item in col_value: if case_id in item: return num num+=1 def get_col_data(self,col_id=None): if col_id != None: cols = self.data.col_values(col_id) else: cols = self.data.col_values(0) return cols if __name__=="__main__": opers=OperateExcel() print(opers.get_data()) print(opers.get_lines()) print(opers.get_cellValue(1,3)) print(opers.get_col_data(2)) print(opers.get_row_num(2))
10、总结
综合示例中的copy是为了实现可以在表格中写入数据,xlrd没有读的功能,xlwt有,但是会覆盖之前的原文件,所有可以先copy,再实现副本中实现写入数据