文件名或路径没有';在编写Excel文件时不存在或被其他程序使用

本文关键字:不存在 文件 程序 Excel 其他 路径 文件名 | 更新日期: 2023-09-27 18:21:51

我正在尝试创建一个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()调用中遇到异常。说:

文件名或路径不存在或被其他程序使用

我在这里做错了什么?

文件名或路径没有';在编写Excel文件时不存在或被其他程序使用

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

文件名或路径不存在或被其他程序使用

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

尝试更改此行

xlworkbook = xlapp.Workbooks.Add(misvalue);

到此行:

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

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

所以我建议您使用excellibrary来编写Excel文件的

您可以从C#中找到创建Excel(.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);