时间:2021-07-01 10:21:17 帮助过:76人阅读
输出文件信息 print("\nxlseng.info():") xlseng.info() #读取sheet1页第3行第3列单元格数据(默认读取sheet1页第1行第1列单元格数据) print("\nxlseng.readcell():") xlseng.readcell('sheet1',2,2) #读取sheet1页第2行的数据(默认读取sheet1页第1行的数据) print("\nxlseng.readrow():") xlseng.readrow('sheet1',1) #读取sheet1页第3列的数据(默认读取sheet1页第1列的数据) print("\nxlseng.readcol():") xlseng.readcol('sheet1',2) #向第一个sheet页的第2行第4列写字符串数据‘I am writecell writed'(默认向第一个sheet页的第1行第1列写空字符串) print("\nxlseng.writecell():") xlseng.writecell('I am writecell writed',0,1,3) #向第一个sheet页写一行数据,各列的值为‘rowstr1,rowstr2,rowstr3',从第3行第4列开始写入(默认向第一个sheet页写一行数据,值为‘',从第1行第1列开始写入) print("\nxlseng.writerow():") xlseng.writerow('rowstr1,rowstr2,rowstr3',0,2,3) #向第一个sheet页写一列数据,各行的值为‘colstr1,colstr2,colstr3,colstr4',从第4行第4列开始写入(默认向第一个sheet页写一列数据,值为‘',从第1行第1列开始写入) print("\nxlseng.writecol():") xlseng.writecol('colstr1,colstr2,colstr3,colstr4',0,3,3)
- #coding=utf-8
- #######################################################
- #filename:ExcelRW.py
- #author:defias
- #date:2015-4-27
- #function:read or write excel file
- #######################################################
- import xlrd
- import xlwt
- import xlutils.copy
- import os.path
- class XlsEngine():
- """
- The XlsEngine is a class for excel operation
- Usage:
- xlseng = XlsEngine('filePath')
- """
- def __init__(self,xlsname):
- """
- define class variable
- """
- self.xls_name = xlsname #file name
- self.xlrd_object = None #workbook object
- self.isopentrue = False #file open flag
- def open(self):
- """
- open a xls file
- Usage:
- xlseng.open()
- """
- try:
- self.xlrd_object = xlrd.open_workbook(self.xls_name)
- self.isopentrue = True
- print('[%s,%s].'%(self.isopentrue,self.xlrd_object))
- except:
- self.isopentrue = False
- self.xlrd_object = None
- print('open %s failed.'%self.xls_name)
- def info(self):
- """
- show xls file information
- Usage:
- xlseng.info()
- """
- if self.isopentrue == True:
- for sheetname in self.xlrd_object.sheet_names():
- worksheet = self.xlrd_object.sheet_by_name(sheetname)
- print('%s:(%d row,%d col).'%(sheetname,worksheet.nrows,worksheet.ncols))
- else:
- print('file %s is not open.'%self.xls_name)
- def readcell(self,sheetname='sheet1',rown=0,coln=0):
- """
- read file's a cell content
- Usage:
- xlseng.readcell('sheetname',rown,coln)
- """
- try:
- if self.isopentrue == True:
- worksheets = self.xlrd_object.sheet_names()
- if sheetname not in worksheets:
- print('%s is not exit.'%sheetname)
- return False
- worksheet = self.xlrd_object.sheet_by_name(sheetname)
- cell = worksheet.cell_value(rown,coln)
- print('[file:%s,sheet:%s,row:%s,col:%s]:%s.'%(self.xls_name,sheetname,rown,coln,cell))
- else:
- print('file %s is not open.'%self.xls_name)
- except:
- print('readcell is false! please check sheetn rown and coln is right.')
- def readrow(self,sheetname='sheet1',rown=0):
- """
- read file's a row content
- Usage:
- xlseng.readrow('sheetname',rown)
- """
- try:
- if self.isopentrue == True:
- worksheets = self.xlrd_object.sheet_names()
- if sheetname not in worksheets:
- print('%s is not exit.'%sheetname)
- return False
- worksheet = self.xlrd_object.sheet_by_name(sheetname)
- row = worksheet.row_values(rown)
- print('[file:%s,sheet:%s,row:%s]:%s.'%(self.xls_name,sheetname,rown,row))
- else:
- print('file %s is not open.'%self.xls_name)
- except:
- print('readrow is false! please check sheetn rown is right.')
- def readcol(self,sheetname='sheet1',coln=0):
- """
- read file's a col content
- Usage:
- xlseng.readcol('sheetname',coln)
- """
- try:
- if self.isopentrue == True:
- worksheets = self.xlrd_object.sheet_names()
- if sheetname not in worksheets:
- print('%s is not exit.'%sheetname)
- return False
- worksheet = self.xlrd_object.sheet_by_name(sheetname)
- col = worksheet.col_values(coln)
- print('[file:%s,sheet:%s,col:%s]:%s.'%(self.xls_name,sheetname,coln,col))
- else:
- print('file %s is not open.'%self.xls_name)
- except:
- print('readcol is false! please check sheetn coln is right.')
- def writecell(self,value='',sheetn=0,rown=0,coln=0):
- """
- write a cell to file,other cell is not change
- Usage:
- xlseng.writecell('str',sheetn,rown,coln)
- """
- try:
- if self.isopentrue == True:
- xlrd_objectc = xlutils.copy.copy(self.xlrd_object)
- worksheet = xlrd_objectc.get_sheet(sheetn)
- worksheet.write(rown,coln,value)
- xlrd_objectc.save(self.xls_name)
- print('writecell value:%s to [sheet:%s,row:%s,col:%s] is ture.'%(value,sheetn,rown,coln))
- else:
- print('file %s is not open.'%self.xls_name)
- except:
- print('writecell is false! please check.')
- def writerow(self,values='',sheetn=0,rown=0,coln=0):
- """
- write a row to file,other row and cell is not change
- Usage:
- xlseng.writerow('str1,str2,str3...strn',sheetn,rown.coln)
- """
- try:
- if self.isopentrue == True:
- xlrd_objectc = xlutils.copy.copy(self.xlrd_object)
- worksheet = xlrd_objectc.get_sheet(sheetn)
- values = values.split(',')
- for value in values:
- worksheet.write(rown,coln,value)
- coln += 1
- xlrd_objectc.save(self.xls_name)
- print('writerow values:%s to [sheet:%s,row:%s,col:%s] is ture.'%(values,sheetn,rown,coln))
- else:
- print('file %s is not open.'%self.xls_name)
- except:
- print('writerow is false! please check.')
- def writecol(self,values='',sheetn=0,rown=0,coln=0):
- """
- write a col to file,other col and cell is not change
- Usage:
- xlseng.writecol('str1,str2,str3...',sheetn,rown.coln)
- """
- try:
- if self.isopentrue == True:
- xlrd_objectc = xlutils.copy.copy(self.xlrd_object)
- worksheet = xlrd_objectc.get_sheet(sheetn)
- values = values.split(',')
- for value in values:
- worksheet.write(rown,coln,value)
- rown += 1
- xlrd_objectc.save(self.xls_name)
- print('writecol values:%s to [sheet:%s,row:%s,col:%s] is ture.'%(values,sheetn,rown,coln))
- else:
- print('file %s is not open.'%self.xls_name)
- except:
- print('writecol is false! please check.')
- def filecreate(self,sheetnames='sheet1'):
- """
- create a empty xlsfile
- Usage:
- filecreate('sheetname1,sheetname2...')
- """
- try:
- if os.path.isfile(self.xls_name):
- print('%s is exit.'%self.xls_name)
- return False
- workbook = xlwt.Workbook()
- sheetnames = sheetnames.split(',')
- for sheetname in sheetnames:
- workbook.add_sheet(sheetname,cell_overwrite_ok=True)
- workbook.save(self.xls_name)
- print('%s is created.'%self.xls_name)
- except:
- print('filerator is false! please check.')
- def addsheet(self,sheetnames='sheet1'):
- """
- add sheets to a exit xlsfile
- Usage:
- addsheet('sheetname1,sheetname2...')
- """
- try:
- if self.isopentrue == True:
- worksheets = self.xlrd_object.sheet_names()
- xlrd_objectc = xlutils.copy.copy(self.xlrd_object)
- sheetnames = sheetnames.split(',')
- for sheetname in sheetnames:
- if sheetname in worksheets:
- print('%s is exit.'%sheetname)
- return False
- for sheetname in sheetnames:
- xlrd_objectc.add_sheet(sheetname,cell_overwrite_ok=True)
- xlrd_objectc.save(self.xls_name)
- print('addsheet is ture.')
- else:
- print("file %s is not open \n"%self.xls_name)
- except:
- print('addsheet is false! please check.')
- """
- def chgsheet(self,sheetn,values):
- def clear(self):
- """
- if __name__ == '__main__':
- #初始化对象
- xlseng = XlsEngine('E:\\Code\\Python\\test2.xls')
- #新建文件,可以指定要新建的sheet页面名称,默认值新建sheet1
- #print("\nxlseng.filecreate():")
- #xlseng.filecreate('newesheet1,newesheet2,newesheet3')
- #打开文件
- print("xlseng.open():")
- xlseng.open()
- #添加sheet页
- print("\nxlseng.addsheet():")
- xlseng.addsheet('addsheet1,addsheet2,addsheet3')
- #
希望本文所述对大家的Python程序设计有所帮助。