在计划任务中打开ExcelFile时出错

时间:2016-06-29 10:05:04

标签: java excel vba scheduled-tasks jacob

我创建了一个必须抛出VBA Excel宏的Jar文件。 为此,我使用了jacob API 我的电话代码是:

final ActiveXComponent excel = new ActiveXComponent("Excel.Application");
    try {

        final Dispatch workbooks = excel.getProperty("Workbooks").toDispatch();

        final Dispatch workBook = Dispatch.call(workbooks, "Open", file.getAbsolutePath()).toDispatch();

        final Variant result = Dispatch.call(excel, "Run", new Variant("\'" + file.getName() + "\'" + macro));
        com.jacob.com.Variant f = new com.jacob.com.Variant(true);
        Dispatch.call(workBook, "Close", f);

    } catch (Exception e) {

        ReadExcel.errorLog(e.getMessage());

    } finally {

        excel.invoke("Quit", new Variant[0]);
        ComThread.Release();
    }

当我手动启动我的jar时,这段代码工作正常,但是在计划任务中我遇到了这个错误:

  

错误 - 调用:开源:Microsoft Office Excel描述:   Microsoft Office Excel无法访问该文件   «C:\用户\我\桌面\项目\ ExcelWithMacro.xlsm»。有几个   可能的原因:

     
      
  • 文件名或路径不存在。
  •   
  • 该文件正由另一个程序使用。
  •   
  • 您尝试保存的工作簿与当前打开的工作簿具有相同的名称。
  •   

但该文件存在,未被其他程序使用且未打开...

错误就行了:

final Dispatch workBook = Dispatch.call(workbooks, "Open", file.getAbsolutePath()).toDispatch();

0 个答案:

没有答案