发布于2019-08-06 17:14 阅读(728) 评论(0) 点赞(1) 收藏(2)
import xlrd
from xlutils.copy import copy
class OperationExcel:
def __init__(self, file_name=None, sheet_id=None):
"""
构造函数,调用方法的时候。就要知道excel地址,和响应的sheed_id。也就是调用这个函数的时候就要知道,想要操作的数据在哪里
:param file_name: excel的文件路径,可以默认存在一个地方
:param sheet_id: sheet,第一个是0.依次向下
"""
if file_name:
self.file_name = file_name # 传的话就是用传的地址
self.sheet_id = sheet_id
else:
self.file_name = r'D:\p22naf\util\stu_1.xls' # 不传的话就用给定的地址
self.sheet_id = 0 # 0是第一个sheet
self.data = self.get_data() #self.data就会excel里面内容的一个对象
# 获取某一页sheet对象
def get_data(self):
data = xlrd.open_workbook(self.file_name)
tables = data.sheets()[self.sheet_id]
return tables
# if __name__ == '__main__':
# opers = OperationExcel()
# print(opers.get_data().nrows)
# 获取单元格的行数
def get_lines(self):
tables = self.data
return tables.nrows
#结果是5行
# 获取某一个单元格的内容
def get_cell_value(self, row, col): #如:传入0 1,就是年龄。row是行,col是列。都是从0开始
return self.data.cell_value(row, col)
# 写入数据 如下:传入的数据是5,4,100 调用的时候,EXcel不能是打开状态
def write_value(self, row, col, value):
'''
写入excel数据
row,col,value
'''
read_data = xlrd.open_workbook(self.file_name)
write_data = copy(read_data)
sheet_data = write_data.get_sheet(0)
sheet_data.write(row, col, value)
write_data.save(self.file_name)
# 根据对应的caseid 找到对应行的内容
# def get_rows_data(self, case_id):
# row_num = self.get_row_num(case_id)
# rows_data = self.get_row_values(row_num)
# return rows_data
#
# # 根据对应的caseid找到对应的行号
# def get_row_num(self, case_id):
# num = 0
# clols_data = self.get_cols_data()
# for col_data in clols_data:
# if case_id in col_data:
# return num
# num = num + 1
# if __name__ == '__main__':
# opers = OperationExcel()
# print(opers.get_row_num("mary3"))
#结果:3
# 根据行号,找到该行的内容
def get_row_values(self, row):
tables = self.data
row_data = tables.row_values(row)
return row_data
# 获取某一列的内容
def get_cols_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 = OperationExcel()
print(opers.get_row_num("mary1"))
作者:yoyo
链接:https://www.pythonheidong.com/blog/article/9102/fd4e9dc6c081acc2e32b/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!