如何在烧瓶中使用xlwings?

时间:2017-09-25 05:51:22

标签: python flask ctypes xlwings

我有一个名为Proj_Result的VBA宏。我可以通过导入xlwings在Spyder中使用它。 我的代码如下:

import xlwings as xw
wb = xw.books('Macro_for_Proj_Result.xlsm')
pr = wb.macro('Proj_Result')
result=pr(ws1, runno1, prod_name1, spcode, result_type, var, r.date.strftime('%Y/%m/%d'))
print(result)

我运行python脚本并获得正确的结果。 我想在Web应用程序中使用此代码,因此我使用flask框架结构。 代码与spyder中的代码相同,但我在这一行上收到错误:

wb = xw.books('Macro_for_Proj_Result.xlsm')

错误如下:

--------------------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\inetpub\wwwroot\lapydev\jspt\views.py", line 428, in getvariable
    getAIOdata(md5_code,left_result,middle_result,right_result)
  File "C:\inetpub\wwwroot\lapydev\jspt\views.py", line 440, in getAIOdata
    getVardata(aioParams,left_result[0][0])
  File "C:\inetpub\wwwroot\lapydev\jspt\views.py", line 446, in getVardata
    wb = xw.books(os.path.join(jspt.static_folder, 'Macro_for_Proj_Result.xlsm'))
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\main.py", line 49, in __call__
    return self._wrap(impl=self.impl(name_or_index))
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\main.py", line 2828, in impl
    return apps.active.books.impl
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\main.py", line 358, in books
    return Books(impl=self.impl.books)
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\_xlwindows.py", line 374, in books
    return Books(xl=self.xl.Workbooks)
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\_xlwindows.py", line 302, in xl
    self._xl = get_xl_app_from_hwnd(self._hwnd)
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\_xlwindows.py", line 218, in get_xl_app_from_hwnd
    ptr = accessible_object_from_window(child_hwnd)
  File "C:\Anaconda3\lib\site-packages\xlwings-0.11.4-py3.5.egg\xlwings\_xlwindows.py", line 189, in accessible_object_from_window
    byref(IDispatch._iid_), byref(ptr))
  File "_ctypes/callproc.c", line 920, in GetResult
OSError: [WinError -2147467259] 未指定的错误
--------------------------------------------------------------------------------
INFO in __init__ [C:/inetpub/wwwroot/lapydev/__init__.py:65]:
hello 500!
--------------------------------------------------------------------------------

我使用pycharm的web服务器。 如何在烧瓶中使用xlwings? 非常感谢你!

0 个答案:

没有答案