Пользовательские функции Python/Excel перестают работать после повторного открытия файла

Я использую xlwings для создания пользовательской функции Python для Excel. Итак, я создаю новый файл Excel, выполняю всю настройку, и UDF возвращает мне правильные результаты. После этого я сохраняю файл Excel, закрываю его, снова открываю и повторно импортирую функцию для повторного использования. Но именно тогда UDF перестает работать. Это не дает мне никаких сообщений об ошибках. Вместо этого он просто начинает возвращать неправильные результаты, несмотря на то, что я ничего не менял. В частности, UDF сообщает, что число_файлов равно 0, хотя в папке Docs_Received сохранено несколько файлов PDF. Я искал предыдущие вопросы, проверял несколько раз и дважды проверял настройки файла, но до сих пор понятия не имею. Кто-нибудь знает, как заставить UDF работать правильно после повторного открытия файла?

def FILE_COUNT():
    folder_name = "Docs_Received"
    number_of_files = 0
    for file in glob.glob(os.path.join(os.path.abspath(os.path.curdir),folder_name,"[!~]*.pdf")):
        number_of_files += 1
    return number_of_files

person Débora    schedule 28.07.2018    source источник


Ответы (1)


Ваш код работает для меня после сохранения и повторного открытия.

Вам не нужно повторно импортировать UDF. Вы должны сохранить как файл с поддержкой макросов (как .xlsm или .xlsb).

person Doug Jenkins    schedule 23.08.2018