我正在尝试使用 Python 中的 Win32 将 Excel 电子表格保存为 PDF 文件。
代码在这里:
infile='c:/Infile.xlsx'
wb=client.dynamic.Dispatch('Excel.Application')
ws=wb.Workbooks.Open(filename)
ws.ExportAsFixedFormat(0,'c:\\OutputFile.pdf')
wb.Quit()
有时有效,有时会出现以下错误:
module win32com.gen_py has no attribute 'CLSIDToPackageMap'
显然可以在这篇 github 文章中找到答案:
所以在这里应用它:
try:
wb=win32.gencache.EnsureDispatch('Excel.Application')
except AttributeError:
f_loc=r'C:\Users\user_name\AppData\Local\Temp\gen_py'
for f in Path(f_loc):
Path.unlink(f)
Path.rmdir(f_loc)
wb=win32.gencache.EnsureDispatch('Excel.Application')
我收到以下异常:
Traceback (most recent call last):
File "H:\toc2.py", line 90, in <module>
for f in Path(f_loc):
TypeError: 'WindowsPath' object is not iterable
我搜索了我的 Windows 10 企业版,没有找到任何名为
gen_py
的文件夹,只在 gen.py
中找到一个名为 C:\Users\user_name\Anaconda3\Lib\site-packages\tornado\gen.py
的 Python 文件。
为什么我没有该文件夹?我在 Windows 10 Enterprise 和 Spyder 4.0.1 上使用 Python 3.7.6。
谢谢你。
您的文件夹已隐藏。这是一个有趣的搜索,但您不仅需要找到导致它的原因,而且 Windows 的默认设置是隐藏所有这些文件夹。如果您单击“显示隐藏文件夹”,它将出现。我花了一段时间才弄清楚这一点,因为我的计算机上没有出现此错误,只有我向其他用户提供了代码,因此这使得弄清楚这一点变得更加困难。祝你好运。