import openpyxlclass FileAbs:rowData = 3 # 元记录保存于第3行colDataRows = 1 # 记录总行数保存于第1列colDataPostLength = 2 # 基本信息宽度保存于第2列colDataContentLength = 3 # 详细记录宽度保存于第3列offsetPost = 1+1 # 基本信息偏移量设定为1,加上Excel的坐标转换量1offsetContent = offsetPost+2 # 详细记录偏移量设定为2,加上基本信息偏移量def __init__(self, file_path):self.file = file_pathself.workbook = openpyxl.load_workbook(self.file)self.data = self.workbook['Data'] # 元记录表self.post = self.workbook['Post'] # 数据表self.nRow = self.data.cell(self.rowData, self.colDataRows).value # 数据记录数self.lPost = self.data.cell(self.rowData, self.colDataPostLength).value # 基本信息宽度self.lContent = self.data.cell(self.rowData, self.colDataContentLength).value # 详细记录宽度# 保存并关闭文件def save(self):self.workbook.save(self.file)# 获取记录数def getRow(self):return self.nRow# 设置记录数def setRow(self, row):self.nRow = rowself.data.cell(self.rowData, self.colDataRows).value = row# 记录数加1,并返回结果def addRow(self):row = self.nRow + 1self.setRow(row)return row# 获取概要(Post)数据。不传入行号则返回最后一条记录def getPost(self, row=0):_row = row if row else self.nRowrtn = []for i in range(self.lPost):rtn.append(self.post.cell(_row, i + self.offsetPost).value)return rtn# 设置概要(Post)数据。不传入行号则在最后一行后新增添加def setPost(self, data, row=0):_row = row if row else self.addRow()for i in range(self.lPost):self.post.cell(_row, i + self.offsetPost).value = data[i]# 获取详情(Content)数据,不传入行号则返回最后一行def getContent(self, row=0):_row = row if row else self.nRowrtn = []for i in range(self.lContent):rtn.append(self.post.cell(_row, i + self.lPost + self.offsetContent).value)return rtn# 设置详情(Content)数据。必须传入行号def setContent(self, data, row):for i in range(self.lContent):self.post.cell(row, i + self.lPost + self.offsetContent).value = data[i]class File3DM(FileAbs):def __init__(self, file_path):super().__init__(file_path)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。