使用powershell将csv文件转换为excel

时间:2015-05-28 20:10:21

标签: excel powershell csv

我正在运行一个将CSV文件转换为Excel的PowerShell脚本。当我手动运行它工作正常,但当我通过计划任务运行它失败。这是我得到的错误:

  

使用“1”参数调用“Open”的异常:“Workbook类的Open方法   失败”   在C:\ PowerShell \ Weekly \ WeeklyReport.ps1:337 char:34   + $ workbook = $ excel.Workbooks.Open<<<< ($ csvFilePath)       + CategoryInfo:NotSpecified:(:) [],MethodInvocationException       + FullyQualifiedErrorId:ComMethodTargetInvocation

我在计划任务中使用与登录时相同的帐户。我也使用本地管理员帐户进行了计划任务,但仍然遇到了同样的问题。我实际上发布的是一个VB脚本,它反过来启动一个.bat文件,该文件列出了一些PowerShell脚本。 VB脚本用于隐藏窗口,因此它在运行时不会显示。如果我手动运行VB脚本它运行正常,但是当通过计划任务运行它时,它会因我列出的错误而失败。我正在使用Windows Server 2008并且安装了Office 2003。以下是PowerShell脚本失败的部分:

   $excel = New-Object -ComObject excel.application 
   $excel.visible = $False 
   $excel.displayalerts=$False 
   $workbook = $excel.Workbooks.Open($csvFilePath) 
   $workSheet = $workbook.worksheets.Item(1)

它在线上失败

$workbook = $excel.Workbooks.Open($csvFilePath)

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

好的,所以我发现了我的问题。我进入了dcomcnfg。自从我申请" Excel"是32位,我在64位机器上运行我不得不在32位版本的午餐中吃午饭:

c:\ Windows \ SysWOW64> mmc comexp.msc / 32

一旦我在那里,我进入了组件服务 - >计算机 - >我的电脑 - > DCOM配置。在该列表中,我喜欢Microsoft Excel Application并进入了属性。在安全选项卡中,我点击了#34; Customize"在每一个旁边,点击每个的编辑按钮,并添加我正在用计划任务进行午餐的用户帐户。完全访问一切。在"身份"标签我点击广播圈"此用户"并再次为我正在运行任务的用户提供信息。我可能并不需要做所有这些,我确定只需要一件事来解决问题,但我不确定是哪一个这样做的,我做了所有这些。它奏效了。