第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > python实现excel中vlookup函数功能并打包为win环境可执行的exe文件

python实现excel中vlookup函数功能并打包为win环境可执行的exe文件

时间:2022-06-19 14:55:32

相关推荐

python实现excel中vlookup函数功能并打包为win环境可执行的exe文件

最近工作用到数据对比处理,Excel用的比较多,奈何自己VBA不够熟悉,复杂一点的功能,做起来挺吃力的,就想起了Python来解决。 将期望功能代码打包成exe文件,在window环境中运行,获得想要的结果。

本文代码只是模拟excel中VLOOKUP函数为例,具体实践中,可以根据自己需要,修改功能代码。

1、安装打包所需的pyinstaller: pip install pyinstaller

2、要实现的VLOOKUP功能代码:

# -!- coding: utf-8 -!-from openpyxl import load_workbookimport win32apiimport win32con# 读取指定excelwb = load_workbook("./1_data_location/Source.xlsx")ws = wb[wb.sheetnames[0]]rows = ws.max_row# 遍历目标单元格for goal_index in range(2, rows + 1):goal_cell_value = ws.cell(row=goal_index, column=5).valueif goal_cell_value is not None:# 遍历数据源单元格for source_index in range(2, rows + 1):source_cell_value = ws.cell(row=source_index, column=1).value# 执行区域存在目标数据时if goal_cell_value == source_cell_value:ws.cell(row=goal_index, column=6).value = ws.cell(row=source_index, column=2).valuewb.save('./1_data_location/Goal.xlsx')wb.closeprint("模拟VLOOKUP函数结束")##提醒OK消息框win32api.MessageBox(0, "模拟VLOOKUP函数执行完毕", "提醒", win32con.MB_OK)

3、在项目所在文件夹上按住Shift同时点击鼠标右键,选中“在此处打开Powershell窗口(S)”

4、在出来的黑窗口中输入:pyinstaller VloopupFunction.py,稍等几分钟,如果报如下错误:

RecursionError: maximum recursion depth exceeded

原因是python在win中默认递归1000行,此处递归超出了这一限制,所以需要修改递归限制次数。

参考文章:/questions/38977929/pyinstaller-creating-exe-runtimeerror-maximum-recursion-depth-exceeded-while-ca

需要继续执行第5点、第6点,如果未报上面错误,则直接看第7步。

5、第四步运行后会生成xxx.spec,在该文件第二行加入:

import syssys.setrecursionlimit(1000000)

将递归限制次数最高改为一百万次。

如下图:

6、在第步出来的黑窗口中执行:pyinstaller VloopupFunction.spec ,等待执行完毕。

7、在生成的dist目录下的VloopupFunction目录中创建文件夹 1_data_location,并将Source.xlsx复制到该目录下。

8、双击dist目录下的VloopupFunction中的VloopupFunction.exe,则会在1_data_location生成Goal.xlsx。

Source.xlsx为:

Goal.xlsx为:

已经实现将指区域中存在目标对象找到并获取其对应指功能。

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