我需要自动执行一些 MS Office 操作,例如打开、编辑、保存 Excel 或 Word 文件。我知道这可以使用 win32com 库来完成。我能够从脚本所在的 Windows 计算机成功运行这些脚本,但无法在同一台 Windows 计算机的 telnet session 中运行它们。
File "C:\Python27\Lib\site-packages\etest\a8n\msoffice.py", line 216, in <module>
d.save_as('test')
File "C:\Python27\Lib\site-packages\etest\a8n\msoffice.py", line 152, in save_as
self._workbook.SaveAs(filename)
File "<COMObject <unknown>>", line 7, in SaveAs
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Office Excel', u'SaveAs method of Workbook class failed', u'C:\\Program Files (x86)\\Microsoft Office\\Office12\\1033\\XLMAIN11.CHM', 0, -2146827284), None)
这是一个限制吗?或者您认为我的脚本中可能有错误?
如果这是一个限制,是否有任何方法可以自动化 Office 操作并通过 telnet 或 ssh session 运行它?
谢谢
梅加纳
更新:
我尝试打开 Excel 工作表,但收到此错误,
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Office Excel', u"Microsoft Office Excel cannot access the file 'C:\\test.xlsx'. There are several possible reasons:\n\n\u2022 The file name or path does not exist.\n\u2022 The file is being used by another program.\n\u2022 The workbook you are trying to save has the same name as a currently open workbook.", u'C:\\Program Files (x86)\\Microsoft Office\\Office12\\1033\\XLMAIN11.CHM', 0, -2146827284), None)
但该文件未打开且未被任何程序使用。
最佳答案
我的猜测(从未尝试过您正在尝试的操作)是,当远程登录时,路径或(更有可能)“工作文件夹”与登录时不同。尝试使用文件名的绝对路径。另请确保您使用相同的帐户登录以运行 telnet 和 desk,因为这会影响写入权限。
也许桌面的缺失也与此有关。尝试将可见性设置为 false,尽管这似乎还不够。
关于基于 telnet 的 python 办公自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795769/