我正在尝试将几个pandas数据帧写入现有的excel工作簿。我选择xlwings是因为它成功地保存了工作簿中的公式。这段代码工作了大约两天,然后出现了一个模棱两可的错误。知道这段代码为什么失败吗?在
def write_packaged_outputs(packaged_outputs):
print("Writing to template")
template_file = './SlotVizTemplate.xlsx'
output_file = './SlotVizOutput.xlsx'
workbook = xlwings.Book(template_file)
for packaged_output in packaged_outputs:
df = packaged_output['dataframe']
sheet_name = packaged_output['sheet_name']
cell = packaged_output['cell']
worksheet = workbook.sheets[sheet_name]
worksheet.range(cell).options(index=False, header=False).value = df
workbook.save(output_file)
xlwings.apps[0].quit()
代码似乎在工作簿分配时失败:
^{pr2}$错误如下:
Traceback (most recent call last):
File "C:\Users\philector\Documents\Development\Python\SlotViz\SlotVizTool_v1.py", line 214, in <module>
write_packaged_outputs(packaged_outputs)
File "C:\Users\philector\Documents\Development\Python\SlotViz\SlotVizTool_v1.py", line 160, in write_packaged_outputs
workbook = xlwings.Book(template_file)
File "C:\Users\philector\AppData\Local\Programs\Python\Python36-32\lib\site-packages\xlwings\main.py", line 479, in __init__
app = App(add_book=False)
File "C:\Users\philector\AppData\Local\Programs\Python\Python36-32\lib\site-packages\xlwings\main.py", line 204, in __init__
self.impl = xlplatform.App(spec=spec, add_book=add_book)
File "C:\Users\philector\AppData\Local\Programs\Python\Python36-32\lib\site-packages\xlwings\_xlwindows.py", line 288, in __init__
self._xl = COMRetryObjectWrapper(DispatchEx('Excel.Application'))
File "C:\Users\philector\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32com\client\__init__.py", line 113, in DispatchEx
dispatch = pythoncom.CoCreateInstanceEx(clsid, None, clsctx, serverInfo, (pythoncom.IID_IDispatch,))[0]
pywintypes.com_error: (-2147024703, 'OLE error 0x800700c1', None, None)
enter code here
我想弄清楚错误代码是什么,然后想到了这个:
我只是不确定这个错误意味着什么,或者我需要做些什么来修正它。在
更新
启动一个带有pypiwin32模块的Excel实例也失败了,所以我想如果能修复它,我会重新安装到。没有。我们得到了一个与xlwings相似的错误消息。在
import win32com.client
win32com.client.Dispatch('Excel.Application')
更新2
我想我发现了问题。我有一台64位的机器,出于某种原因,我工作的公司安装了32位版本的Office 2016。在
目前没有回答
相关问题 更多 >
编程相关推荐