Home » excel » c# – The file name or path doesn't exist or used by other program while writing Excel file

c# – The file name or path doesn't exist or used by other program while writing Excel file

Posted by: admin April 23, 2020 Leave a comment

Questions:

I am trying to create an Excel file and write some data to it.
Here is the code I am using.

using excel = Microsoft.Office.Interop.Excel;
excel.Application xlapp;
excel.Workbook xlworkbook;
excel.Worksheet xlworksheet;
object misvalue = System.Reflection.Missing.Value;

xlapp = new excel.ApplicationClass();
xlworkbook = xlapp.Workbooks.Add(misvalue);

xlworksheet = (excel.Worksheet)xlworkbook.Worksheets.get_Item(1);
xlworksheet.Cells[1, 1] = "Muneeb Hassan Soomro";
xlworkbook.SaveAs("csharp-excelwrite.xls",excel.XlFileFormat.xlWorkbookNormal,misvalue,misvalue,misvalue,misvalue,excel.XlSaveAsAccessMode.xlExclusive,misvalue,misvalue,misvalue,misvalue,misvalue);
//xlworkbook.SaveAs("csharp-Excel.xls", excel.XlFileFormat.xlWorkbookNormal);
xlworkbook.Close(true, misvalue, misvalue);
xlapp.Quit();

I get an exception on the xlworkbook.saveas() call. says:

The file name or path doesn’t exist or used by other program

What i am doing wrong here?

How to&Answers:

So from one of your comments on another answer I finally got the exception text (This information should have been included in the question!)

The file name or path doesn’t exist or used by other program

The solution should be simple: Specify a full path in the SaveAs call, not only a file name. How should Excel know in which folder it should save the file otherwise?

Answer:

Try to change this line

xlworkbook = xlapp.Workbooks.Add(misvalue);

to this line:

xlworkbook = xlapp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);

and the SaveAs:

workBook.SaveAs("csharp-excelwrite.xls", XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

Answer:

So i suggest you to use excellibrary for Excel file writing

You can find a details on Create Excel (.XLS and .XLSX) file from C#

Answer:

try this

object format = excel.XlFileFormat.xlWorkbookNormal;
object sv = excel.XlSaveAsAccessMode.xlExclusive;
object filename = "csharp-excelwrite.xls";

xlworkbook.SaveAs(ref filename,ref format,
ref misvalue,ref misvalue,ref misvalue,
ref misvalue,ref sv,ref misvalue,ref misvalue,
ref misvalue,ref misvalue,ref misvalue);

it is working for me with Word application for example

object readOnly = isReadonly;
object isVisible = true;
object missing = WordConst.Missing;
wordDoc = wordApp.Documents.Open(ref fileName, ref missing,
                          ref readOnly, ref missing, ref missing, ref missing,
                          ref missing, ref missing, ref missing, ref missing,
                          ref missing, ref isVisible, ref missing, ref missing, 
                          ref missing, ref missing);