
下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#Coding:utf=8__author__ = 'ZZ'import osimport natsortfrom operator import itemgetterfrom datetime import datetime,timedeltafrom xlrd import open_workbook,cellname,xldate_as_tuple,error_text_from_codefrom xlwt import easyxf,Workbookfrom xlutils.copy import copyfrom version import VERSION_version_ = VERSIONclass ExcelDriverlibrary: def __init__(self): self.wb = None self.rb = None self.PID = None self.rowIndex = None self.sheetNum = None self.Sheetnames = None self.filename = None def open_excel(self,filename): tempDir = 'D:\Codes\PycharmProjects\ExcelDataDriver\Resfile\' # filename = 'Testfile.xls' try: if filename.find(':')==1: self.rb = open_workbook(filename,formatting_info=True) else: print 'opening file at %s' % filename #self.wb = open_workbook(os.path.join("/",self.tmpDir,filename),formatting_info=True,on_demand=True) self.rb = open_workbook(os.path.join(tempDir,on_demand=True) filename = os.path.join(tempDir,filename) self.filename = filename self.Sheetnames = self.rb.sheet_names except Exception,e: print str(e) def get_sheet_names(self): Sheetnames = self.rb.sheet_names() return Sheetnames def get_number_of_sheets(self): sheetNum = self.rb.nsheets return sheetNum def get_column_count(self,Sheetname): sheet = self.rb.sheet_by_name(Sheetname) return sheet.ncols def get_row_count(self,Sheetname): sheet = self.rb.sheet_by_name(Sheetname) return sheet.nrows def get_column_values(self,Sheetname,column,includeEmptyCells=True): sheet = self.rb.sheet_by_name(Sheetname) data = {} for row_index in range(sheet.nrows): cell = cellname(row_index,int(column)) value = sheet.cell(row_index,int(column)).value data[cell] = value if includeEmptyCells is True: sortedData = natsort.natsorted(data.items(),key=itemgetter(0)) return sortedData else: data = dict([(k,v) for (k,v) in data.items() if v]) OrderedData = natsort.natsorted(data.items(),key=itemgetter(0)) return OrderedData def get_row_values(self,row,includeEmptyCells=True): sheet = self.rb.sheet_by_name(Sheetname) data = {} for col_index in range(sheet.ncols): cell = cellname(int(row),col_index) value = sheet.cell(int(row),col_index).value data[cell] = value if includeEmptyCells is True: sortedData = natsort.natsorted(data.items(),key=itemgetter(0)) return OrderedData def get_sheet_values(self,includeEmptyCells=True): sheet = self.rb.sheet_by_name(Sheetname) data = {} for row_index in range(sheet.nrows): for col_index in range(sheet.ncols): cell = cellname(row_index,col_index) value = sheet.cell(row_index,col_index).value data[cell] = value if includeEmptyCells is True: sortedData = natsort.natsorted(data.items(),key=itemgetter(0)) return OrderedData def get_workboot_value(self,includeEmptyCells=True): sheetData = [] workbookData = [] for sheet_name in self.Sheetnames: if includeEmptyCells is True: sheetData = self.get_sheet_values(sheet_name) else: sheetData = self.get_sheet_values(sheet_name,False) sheetData.insert(0,sheet_name) workbookData.append(sheetData) return workbookData def read_cell_data_by_name(self,cell_name): """ Uses the cell name to return the data from that cell. sheet = self.rb.sheet_by_name(Sheetname) for row_index in range(sheet.nrows): for col_index in range(sheet.ncols): cell = cellname(row_index,col_index) if cell_name ==cell: cellValue = sheet.cell(row_index,col_index).value return cellValue def read_cell_data_by_coordinates(self,row): Uses the column and row to return the data from that cell. my_sheet_index = self.Sheetnames.index(Sheetname) sheet = self.rb.sheet_by_index(my_sheet_index) cellValue = sheet.cell(int(row),int(column)).value return cellValue def Get_Sheet_Index(self,Sheetname): sheetnum = self.get_number_of_sheets() for sheet_index in range(sheetnum): Current_Sheetname = self.rb.sheet_names()[sheet_index] if Sheetname == Current_Sheetname.encode('gb2312').decode('gb2312'): return sheet_index def Get_Cell_Data_By_PID(self,PID,Cellname): sheet = self.rb.sheet_by_name(Sheetname) for row_index in range(sheet.nrows): Cell_Value = sheet.cell(int(row_index),0).value if PID == Cell_Value: break for col_index in range(sheet.ncols): Cell_TitValue = sheet.cell(0,int(col_index)).value if Cellname == Cell_TitValue: break cellValue = sheet.cell(row_index,col_index).value return cellValue def Modify_index_cell(self,Cellname,CellValue): Cellname_index = self._get_Cellname_index(Cellname,Sheetname) PID_index = self._get_PID_index(PID,Sheetname) rb = open_workbook(self.filename,formatting_info=True) try: sheet_index = rb._sheet_names.index(Sheetname) except Exception,e: print u'请输入正确的Sheet名,如果是中文,记得在变量名前面加u.具体错误消息为:',e exit() wb =copy(rb) sheet = wb.get_sheet(sheet_index) sheet.write(PID_index,Cellname_index,CellValue) wb.save(self.filename) 以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的Python对Excel进行读写全部内容,希望文章能够帮你解决Python对Excel进行读写所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)