def main(x, z, d, c):
Datei1 = fd.askopenfilename(
title="选择要参照数据表格。xlsx",
filetypes=[
("Excel files", "*.xls"),
("Excel files", ".xlsx"),
("Excel files", "*.xlsm"),
]) # 获取文件路径,通过中括号包含了三种excel文件格式
test = pd.read_excel(Datei1, sheet_name=0) # Pandas读取窗体界面的指定页
data = test.set_index(x).to_dict()[z]
# 建立数据库
# print(data)
# 第二个参数表示选择的Excel表格名
# t=test.values
# print("daying", test.set_index("物资名称").to_dict()["进价单价"])
Datei2 = fd.askopenfilename(
title="选择要修改的表格.xlsx(上月进销存)",
filetypes=[
("Excel files", "*.xls"),
("Excel files", ".xlsx"),
("Excel files", "*.xlsm"),
]) # 获取文件路径,通过中括号包含了三种excel文件格式
# # 引用openpyxl
wb = openpyxl.load_workbook(Datei2)
sheet = wb.sheetnames
for biao in sheet:
print(biao)
sheet1 = wb[biao]
for rowNum in range(2, sheet1.max_row + 1): # 从第2行到最大值的行加一
produceName = sheet1.cell(row=rowNum,
column=d).value
# row 是行,column是物资名称所在的列
if produceName in data: # 期初数据库
sheet1.cell(row=rowNum, column=c).value = data[produceName]
# 对应期初数据单元格的值为期初数据库对应值
# shuzi=sheet.cell(row=rowNum, column=9).value
# print(type(shuzi))#
wb.save(Datei2)
print("修改完成")
功能:实现数据的批量修改;
缺点:只能在windows系统下使用,只能识别后缀为.xlsx的表格。
注意:修改文件之前要留有副本!!!
运行脚本的之前最好要关闭所有的表格!!
脚本会修改所有工作表的对应内容!!