定义一个文件类,用于读取写入Excel文件
此处代码都是手写的,没有运行过,仅用于个人学习,如有错误,请多指教
后续会把整体框架代码发出(运行通过的)
import openpyxl
class FileDataDriver:
# 静态方法:@staticmethod -- 直接通过类即可调用方法。
@staticmethod
def ReadExcelToDict(filepath,sheetname): # 读取文件
# 打开现有的Excel文件或创建新的文件
try:
workbook = openpyxl.load_workbook(filepath)
except FileNotFoundError:
print("文件不存在!")
# 选择或创建指定的工作表
if sheetname in workbook.sheetnames:
worksheet = workbook[sheetname]
else:
worksheet = workbook.create_sheet(sheetname)
# 当你走到这里的时候,则证明,你已经拿到整个excel中的某个sheet
# 数据的格式:[{key:值1},{key:值2},{key:值2}]
# 将数据存储为字典
data = []
# 这里worksheet[2]是因为在Excel中key在第二行,具体根据实际情况而定
headers = [cell.value for cell in worksheet[2]]
# 数据从第三行开始
for row in worksheet.iter_rows(min_row=3,value_only=True):
# 数据格式进行转换,zip转换成元组,dict转换成字典,数据格式:[{key:值1},{key:值2},{key:值2}]
data.append(dict(zip(headers,row)))
# 关闭Excel
workbook.close
return data
# 写入文件方法
@staticmethod
def WriteToExcel(filepath,sheetname,row=None,cloumn=None,value=None):
# 打开现有的Excel文件或创建新的文件
try:
workbook = openpyxl.load_workbook(filepath)
except FileNotFoundError:
workbook = openpyxl.Workbook()
#print("文件不存在!")
# 选择或创建指定的工作表
if sheetname in workbook.sheetnames:
worksheet = workbook[sheetname]
else:
worksheet = workbook.create_sheet(sheetname)
# 写入文件
worksheet.cell(row=row,column=column).value = value
# 保存修改后的文件
workboo.save(filepath)