最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

Python實現的Excel文件讀寫類

來源:懂視網 責編:小采 時間:2020-11-27 14:42:10
文檔

Python實現的Excel文件讀寫類

Python實現的Excel文件讀寫類:本文實例講述了Python實現的Excel文件讀寫類。分享給大家供大家參考。具體如下: #coding=utf-8 ####################################################### #filename:ExcelRW.py #author:defias #date:2015-4
推薦度:
導讀Python實現的Excel文件讀寫類:本文實例講述了Python實現的Excel文件讀寫類。分享給大家供大家參考。具體如下: #coding=utf-8 ####################################################### #filename:ExcelRW.py #author:defias #date:2015-4

本文實例講述了Python實現的Excel文件讀寫類。分享給大家供大家參考。具體如下:

#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 
"%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("
xlseng.filecreate():")
 #xlseng.filecreate('newesheet1,newesheet2,newesheet3')
 #打開文件
 print("xlseng.open():")
 xlseng.open()
 #添加sheet頁
 print("
xlseng.addsheet():")
 xlseng.addsheet('addsheet1,addsheet2,addsheet3')
 #
輸出文件信息 print(" xlseng.info():") xlseng.info() #讀取sheet1頁第3行第3列單元格數據(默認讀取sheet1頁第1行第1列單元格數據) print(" xlseng.readcell():") xlseng.readcell('sheet1',2,2) #讀取sheet1頁第2行的數據(默認讀取sheet1頁第1行的數據) print(" xlseng.readrow():") xlseng.readrow('sheet1',1) #讀取sheet1頁第3列的數據(默認讀取sheet1頁第1列的數據) print(" xlseng.readcol():") xlseng.readcol('sheet1',2) #向第一個sheet頁的第2行第4列寫字符串數據‘I am writecell writed'(默認向第一個sheet頁的第1行第1列寫空字符串) print(" xlseng.writecell():") xlseng.writecell('I am writecell writed',0,1,3) #向第一個sheet頁寫一行數據,各列的值為‘rowstr1,rowstr2,rowstr3',從第3行第4列開始寫入(默認向第一個sheet頁寫一行數據,值為‘',從第1行第1列開始寫入) print(" xlseng.writerow():") xlseng.writerow('rowstr1,rowstr2,rowstr3',0,2,3) #向第一個sheet頁寫一列數據,各行的值為‘colstr1,colstr2,colstr3,colstr4',從第4行第4列開始寫入(默認向第一個sheet頁寫一列數據,值為‘',從第1行第1列開始寫入) print(" xlseng.writecol():") xlseng.writecol('colstr1,colstr2,colstr3,colstr4',0,3,3)

希望本文所述對大家的Python程序設計有所幫助。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Python實現的Excel文件讀寫類

Python實現的Excel文件讀寫類:本文實例講述了Python實現的Excel文件讀寫類。分享給大家供大家參考。具體如下: #coding=utf-8 ####################################################### #filename:ExcelRW.py #author:defias #date:2015-4
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
国产精品久久久久精品…-国产精品可乐视频最新-亚洲欧美重口味在线-欧美va免费在线观看