Forum Discussion

techgirlbb's avatar
techgirlbb
Contributor
6 years ago

How to save and close one excel file when multiple are open

Hi,

Help  Java script code on how to  save and close one of the  excel file when multiple are open.

My current code is working fine if only one excel is open.

function Excelclose()

{

let app = Sys.OleObject("Excel.Application");

if(app.Visible== true){

app.ActiveWorkbook.Save();

app.Quit()

Log.Message("Excel closed successfully");

}

else

{

Log.Message(" Excel is not running");

}

 

when myltiple excels files are open, due to App. quit,  microsoft excel save popup is getting displayed  ( refer the screen shot).I tried to giving detail of specific file name to save and close, some how  not working.

 

function Excelclose()

{

let app = Sys.OleObject("Excel.Application");

let filepath: C:\\users\\test.xlsx";

if(app.Visible== true)

{

app.ActiveWorkbook.Save(filepath);

app.Quit()

Log.Message("Excel closed successfully");

}

can some one take a look at it and let me know where I am missing ?

 

Thank you

 

 

 

 

 

  • You need to set the active workbook to the one that you want to close.  Then, in your call to "Close", there is a parameter to indicate whether or not to save changes.  App.Quit is NOT how you want to go because that will Excel, not just the individual workbooks.  The only time you should call app.Quit is at the very end of your execution when you're completely done with Excel.

  • arajulapati's avatar
    arajulapati
    New Contributor

    I would suggest you to Create a workbook instead of using "app.ActiveWorkbook" and then try to save the Workbook & close it.

    let excelObject= Sys.OleObject("Excel.Application");
    let filepath: C:\\users\\test.xlsx";

    excelWorkbookObj = excelObject.Workbooks.Open(filepath);
    excelWorkbookObj.SaveAs(strexcelFileName);
    excelWorkbookObj.Close();
    excelWorkbookObj = null;
    • techgirlbb's avatar
      techgirlbb
      Contributor

      Thank you for reply and suggestion.But the excel has test data which are using for DD Loop and updating the transaction ids  to the same excel.so create work book  is not an option.

      If  the scripts gets error out at the middle, we are stoping the scripts. in that cases, the excel is alreay open and unable to open again.

       

      Madhu

      • tristaanogre's avatar
        tristaanogre
        Esteemed Contributor

        You need to set the active workbook to the one that you want to close.  Then, in your call to "Close", there is a parameter to indicate whether or not to save changes.  App.Quit is NOT how you want to go because that will Excel, not just the individual workbooks.  The only time you should call app.Quit is at the very end of your execution when you're completely done with Excel.