700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python Excel操作 xlwt xlrd xlutils三个模块的使用 不删除表 往后累加数据

Python Excel操作 xlwt xlrd xlutils三个模块的使用 不删除表 往后累加数据

时间:2020-07-20 09:08:10

相关推荐

Python Excel操作 xlwt xlrd xlutils三个模块的使用 不删除表 往后累加数据

目录

主要代码

其他类引用代码

Python对Excel表格进行操作(不删除表,往后累加数据)

用时需改变五个参数和自己重新定义AddData方法

self.tableName='设置速度报文测试'#表名

self.FileName='./SocketLog.xlsx'#文件路径+文件名

self.col=('次数','发送时间','接收时间','耗时','备注')#列名

self.colNum=5#列数

self.colWidth = 9000#列宽度

有做了两个异常处理

异常一:FileNotFoundError

没有文件时自动创建

异常二:ValueError

没有表时自动添加表

主要代码

import xlwtimport xlrdimport xlutils.copyfrom pickle import TRUEfrom tkinter import FALSE#Excel表格操作(不删除表,往后累加数据)class XL:def __init__(self):self.tableName='设置速度报文测试'#表名self.FileName='./SocketLog.xlsx'#文件路径+文件名self.col=('次数','发送时间','接收时间','耗时','备注')#列名self.colNum=5#列数self.colWidth = 9000#列宽度self.style = xlwt.XFStyle()borders = xlwt.Borders()#边框样式 DASHED虚线 NO_LINE没有 THIN实线borders.left = xlwt.Borders.THINborders.right = xlwt.Borders.THINborders.top = xlwt.Borders.THINborders.bottom = xlwt.Borders.THINself.style.borders = bordersalignment = xlwt.Alignment()#内容对齐方式alignment.horz = xlwt.Alignment.HORZ_CENTERself.style.alignment = alignmenttry:rd = xlrd.open_workbook(self.FileName, formatting_info = True) # 打开文件并保留格式self.book = xlutils.copy.copy(rd) # 复制self.sheet = self.book.get_sheet(rd.sheet_names().index(self.tableName)) # 读取表名索引对应的工作表self.book.save(self.FileName) # 保存except FileNotFoundError as e:print('XL Error:' + str(e.args))self.CreateXL(TRUE)rd = xlrd.open_workbook(self.FileName, formatting_info = True) # 打开文件并保留格式except ValueError as e:print('XL Error:' + str(e.args))self.CreateXL(FALSE)except PermissionError as e:print('XL Error:' + str(e.args))except Exception as e:print('XL Error:' + str(e.args))self.row = xlrd.open_workbook(self.FileName, formatting_info = True).sheet_by_name(sheet_name=self.tableName).nrows#当前行数#创建表(是否重新创建文件)def CreateXL(self,isCreate):if isCreate:self.book = xlwt.Workbook(encoding='utf-8',style_compression=0)self.sheet = self.book.add_sheet(self.tableName,cell_overwrite_ok=True)for i in range(0,self.colNum):self.sheet.col(i).width = self.colWidthself.sheet.write(0,i,self.col[i],self.style)self.book.save(self.FileName)# 添加表数据(发送时间,接收时间,耗时,备注)def AddData(self,sendTime,receTime,consumeTime,bz):self.sheet.write(self.row,0,self.row,self.style)self.sheet.write(self.row,1,sendTime,self.style)self.sheet.write(self.row,2,receTime,self.style)self.sheet.write(self.row,3,consumeTime,self.style)self.sheet.write(self.row,4,bz,self.style)self.book.save(self.FileName)print("写入表格第%d行"%self.row)self.row+=1

其他类引用代码

from XL import *global xlxl=XL()self.sendTime = time.time()self.receTime = time.time()a="%s.%03d"%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(self.sendTime)), (self.sendTime - int(self.sendTime)) * 1000)b="%s.%03d"%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(self.receTime)), (self.receTime - int(self.receTime)) * 1000)c="%s.%03d"%(time.strftime("%S", time.localtime(self.receTime-self.sendTime)),(self.receTime-self.sendTime)* 1000)if self.receTime-self.sendTime>3:xl.AddData(a,b,c,"超时")else:xl.AddData(a,b,c,"超时")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。