closing excel file through code

N

Namrata

Hi,



I am using Excel for reporting. For opening excel file I have write code :



exlApp = null;

exlApp = new ApplicationClass();

//try

//{

object missing = System.Reflection.Missing.Value;

string path = System.IO.Path.GetFullPath(@"Templates\Log.csv").ToString();

excelWorkbook = exlApp.Workbooks.Open(path, missing,

1,

missing,

Excel.XlTextQualifier.xlTextQualifierNone,

missing,

missing,

missing,

true, //COMMA

missing,

missing,

missing,

missing

);

path = "";

path = System.IO.Path.GetFullPath(@"Reports").ToString();

path = path + @"\" + frmSiteName.siteName + " GenSumm " + DateTime.Now.Day +
"_" + DateTime.Now.Month + "_" + DateTime.Now.Year + " " + DateTime.Now.Hour
+ "." + DateTime.Now.Minute + ".csv";

excelWorkbook.SaveAs(path, missing, missing, missing, missing, missing,
XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing);

object pwd = "cgclogic";

excelWorkbook.Unprotect(pwd);

Excel.Sheets excelSheets = excelWorkbook.Worksheets;

excelWorksheet = (Excel.Worksheet)excelSheets.get_Item("Log Report");

excelWorksheet.Unprotect(pwd);







And before that form termination, write code :

excelWorkbook.Save();

exlApp.Workbooks.Close();


exlApp.Quit();

exlApp = null;

excelWorksheet = null;

excelWorkbook = null;



This form is opening through MDI.



But even after form close 'Windows Task Manager' is showing 'Excel' in
process.
And after application colse it is removing from task manager.

When that file in the reports folder try to open, it is giving error : "
This file is already opened . DO you want to reopen the file ?" or " This
file is being modified by other user . Open a read-only copy."



please tell how to close that file using code.
 
P

Peter T

Only a guess but try changing
exlApp.Quit();

exlApp = null;

excelWorksheet = null;

excelWorkbook = null;

to -

excelWorksheet = null;

ensure all unsaved wb's are closed, after saving or with close false
excelWorkbook = null;
exlApp.Quit();
exlApp = null;

Regards,
Peter T
 
N

Namrata

Thanks for reply !
I change the code as:
excelWorksheet = null;

ensure all unsaved wb's are closed, after saving or with close false
excelWorkbook = null;
exlApp.Quit();
exlApp = null;

But excel file still remains open.
 
P

Peter T

Are all your object variables released in opposite order to which they were
referenced.

Just for testing, make the instance visible
exlApp.visible = true

close all workbooks and release your objects

do not do exlApp.Quit

Do you have any workbooks open, if so why, eg, xl is waiting for user to
dismiss some message perhaps
also check for any hidden workbooks, alt-F11 and look in projects panel in
the VBE

Manually quit
Is your workbook still open

If no workbooks are open, repeat with Quit and destroy your exlApp

Regards,
Peter T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top