写入Excel文件时文件名或path不存在或被其他程序使用

我正在尝试创build一个Excel文件并向其中写入一些数据。 这是我正在使用的代码。

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(); 

我在xlworkbook.saveas()调用中遇到exception。 说:

文件名或path不存在或由其他程序使用

我在这里做错了什么?

所以从你对另一个答案的评论之一,我终于得到了exception文本(这个信息应该包括在问题中!)

文件名或path不存在或由其他程序使用

解决scheme应该很简单:在SaveAs调用中指定一个完整path,而不仅仅是一个文件名。 Excel如何知道应该在哪个文件夹中保存文件?

试着改变这一行

 xlworkbook = xlapp.Workbooks.Add(misvalue); 

到这一行:

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

和另存为:

 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); 

所以我build议你使用excellibrary进行Excel文件编写

您可以从C#中find有关创buildExcel(.XLS和.XLSX)文件的详细信息

尝试这个

 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); 

它正在为我工​​作与Word应用程序例如

 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);