基于 telnet 的 python 办公自动化

标签 python ssh telnet win32com office-automation

我需要自动执行一些 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/

相关文章:

带有 pty 分配请求的 LG WebOS 电视中的 ssh 在 channel 0 上失败

linux - 使用带有输出日志记录的 shell 自动 telnet

java - 使用 JSch 在远程 SSH session 上运行 telnet 命令

python - 带有网络抓取的 Feed 数据框

python - 空路径与这些中的任何一个都不匹配

php - 谷歌正在显示我的旧网址,如何从谷歌索引中删除它并将我的新网址添加到谷歌索引中?

python - 我可以在 Python 2.5.6 中使用 Python 3 super() 吗?

linux - 在嵌入式设备上安装 ssh 服务器

linux - 如何在不重新编译 BusyBox 的情况下在 BusyBox 上启用 SSH?

c++ - telnet LINEMODE 子选项 TRAPSIG 不起作用