如何在 cx_Freeze 中使用 openpyxl

How to use openpyxl with cx_Freeze

我使用 openpyxl 修改现有的 excel 并将其与我的结果一起保存。它在终端上运行良好。

我尝试使用 cx_freeze 在 .exe 上运行我的项目。一切正常,期待与 openpyxl 的部分。

我猜它来自 "path",因为我使用:

current_path = str(os.path.dirname(os.path.realpath(__file__)))
file_path =  current_path + r"\folder\filename.xlsx"
wb = openpyxl.load_workbook(file_path)

如何打开我的 excel 文件,该文件将存储在 .exe 旁边的文件夹中或将它们包含在 setup.py 中?我有几个模型。

在此先感谢您的帮助。

嗯..我在 cx_Freeze 文档中找到了它,抱歉!如果有帮助,请发布答案,为像我这样的初学者添加一些评论:

import sys
def find_data_file(filename):
   if getattr(sys, 'frozen', False):
       # The application is frozen: no need to change anything
       datadir = os.path.dirname(sys.executable)
   else:
       # The application is not frozen: if you run it on terminal
       # Change this bit to match where you store your data files:
       datadir = os.path.dirname(__file__) #__file__ could be replace for example: os.path.realpath(__file__)
return os.path.join(datadir, filename)

在文件名中,不要忘记包含 \ : "\aFolder\myFile.xlsx"

它很适合我替换上面的代码(没有函数):

if getattr(sys, 'frozen', False):
    current_path = str(os.path.dirname(sys.executable))
else:
    current_path = str(os.path.dirname(os.path.realpath(__file__)))

file_path =  current_path + r"\folder\filename.xlsx"
wb = openpyxl.load_workbook(file_path)