这是一些奇怪的行为,我有一个PowerShell脚本将XLSX文件转换为CSV文件。此脚本在控制台中运行时没有问题。
尝试安排任务/脚本导致CSV文件没有数据(0字节)。
在我的搜索中,我发现this TechNet forum post证明有用。
基本上,包含使用Excel ComObject的Powershell脚本的计划任务失败,因为您必须创建一个文件夹(或64位窗口上的两个)。完成此操作后,手动运行的任务将按预期工作。当设置了触发器并且用户已注销时,它也可以工作。
有关Excel ComObject的这种行为是否记录在任何地方?我花了3个小时试图让它发挥作用。
C:\Windows\System32\config\systemprofile\Desktop
(64Bit)
C:\Windows\SysWOW64\config\systemprofile\Desktop
答案 0 :(得分:2)
AFAIK MS没有关于此问题/限制的官方文档。它应该报告为错误(联系Microsoft支持)。
桌面文件夹(默认情况下SYSTEM没有)的要求不一定是excel运行所必需的,至少应该创建该文件夹(如果丢失)。
答案 1 :(得分:0)
我不相信微软会支持您尝试做的事情。根据这个documentation,微软声明:
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。
该文档似乎适用于Office 2003,但我不确定他们是否已经改变了这一立场,因为我还没有找到其他文档说明支持。就在2009年,this MVP重申它不受支持。建议似乎是使用OpenXML SDK进行非交互式自动化,或使用其他第三方库直接使用文件格式。