赞
踩
1.安装xlrd:pip install xlrd
2.导入模块:import xlrd
3.打开Excel文件读取数据
data = xlrd.open_workbook('../dataconfig/interface.xlsx')
4.获取一个工作表(两种方式都可以)
- table = data.sheets()[0] #通过索引顺序获取
- table = data.sheet_by_index(0) #通过索引顺序获取
5.获取表名称
name = table.name
6.获取行数和列数
- nrows = table.nrows
- nclos = table.ncols
7.获取某行和某列的值
- row_value= table.row_values(i)
- col_value = table.col_values(i)
8.循环 行/列 的数据
- for i in range(nrows):
- print(table.row_values(i))
-
- for j in range(nclol):
- print(table.col_values(j))
9.获取单元格数据(两种方式)
- cellvalue = table.cell(row,col).value
- cellvalue = table.cell_value(row,col)
代码参考:将相关方法进行封装,使用过程可以直接调用:
- #coding:utf-8
- import xlrd
-
- class OperationExcel:
- def __init__(self,file_name=None,sheet_id=None):
- if file_name:
- self.file_name = file_name
- self.sheet_id = sheet_id
- else:
- self.file_name = '../dataconfig/interface.xlsx'
- self.sheet_id = 0
- self.data = self.get_data()
-
- #获取sheets的内容
- def get_data(self):
- data = xlrd.open_workbook(self.file_name)
- tables = data.sheets()[self.sheet_id]
- return tables
-
- #获取单元格的行数
- def get_lines(self):
- tables = self.data
- return tables.nrows
-
- #获取某一个单元格的内容
- def get_cell_value(self,row,col):
- tables = self.data
- cell = tables.cell_value(row,col)
- return cell
-
- if __name__ == '__main__':
- opexcel = OperationExcel()
- print(opexcel.get_cell_value(1,2))

1.安装下载:pip install xlwt
2.导入:import xlwt
3.参考:
3.1 生成excel文件test1.xls
- file_name = '../dataconfig/test1.xls'
- wbk = xlwt.Workbook() #初始化workbook对象
- sheet = wbk.add_sheet('My_Worksheet') #创建表
- sheet.write(0,0,'ok') #往单元格写入内容
- wbk.save(file_name) #保存
3.2 如果对同一单元多次操作,报错
- file_name = '../dataconfig/test1.xls'
- wbk = xlwt.Workbook()
- sheet = wbk.add_sheet('My_Worksheet')
- sheet.write(0,1,'ok')
- sheet.write(0,1,'hhok')
- wbk.save(file_name)
- #报错:
- #Exception: Attempt to overwrite cell: sheetname='My_Worksheet' rowx=0 colx=1
3.3 解决方案:
使用cell_overwrite_ok=True来创建worksheet
sheet = wbk.add_sheet('My_Worksheet',cell_overwrite_ok=True)
实际场景:
需要将执行结果放入特定单元格中或者对特定单元格数据进行修改,
Python中一般使用xlrd(excel read)来读取Excel文件,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作;
使用xlwt(excel write)来生成Excel文件,xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。
xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能,其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已。
1.安装下载:pip install xlutils
2.导入:from xlutils.copy import copy
3.示例:
- file_name = '../dataconfig/interface.xls'
- rb = xlrd.open_workbook(file_name)
- print(type(rb))
- wb = copy(rb) #管道作用:利用xlutils.copy函数,将xlrd.Book转为xlwt.Workbook,再用xlwt模块进行存储
- print(type(wb))
- wb.get_sheet(0).write(1,1,'ok') #通过get_sheet()获取的sheet有write()方法
- wb.save(file_name)
- 输出结果:
- <class 'xlrd.book.Book'>
- <class 'xlwt.Workbook.Workbook'>
4.excel修改流程如图
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
原文:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。