Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存文件时Excel无法访问该文件_C#_Excel - Fatal编程技术网

C# 保存文件时Excel无法访问该文件

C# 保存文件时Excel无法访问该文件,c#,excel,C#,Excel,我正试图保存我在c#中创建的Excel文件。我在标题中添加了一个DateTime.Now,并确保字符兼容。现在,当文件夹存在时,我出现了上述错误。我已经发布了它所说的可能是错误,但没有一个适用。另外,当我收到错误时,它会告诉我日期时间。现在部分是指今天的日期和开始时间是5/9/8E017700。这不是年份和时间的日期或时间。我认为这可能是问题所在,但我不确定为什么它会被更改,因为我从未更改名称的变量。我怎样才能解决这个问题 •文件名或路径不存在 •另一个程序正在使用该文件 •您试图保存的工作簿与

我正试图保存我在c#中创建的Excel文件。我在标题中添加了一个
DateTime.Now
,并确保字符兼容。现在,当文件夹存在时,我出现了上述错误。我已经发布了它所说的可能是错误,但没有一个适用。另外,当我收到错误时,它会告诉我
日期时间。现在
部分是指今天的日期和开始时间是5/9/8E017700。这不是年份和时间的日期或时间。我认为这可能是问题所在,但我不确定为什么它会被更改,因为我从未更改名称的变量。我怎样才能解决这个问题

•文件名或路径不存在

•另一个程序正在使用该文件

•您试图保存的工作簿与当前打开的工作簿同名

string date = DateTime.Now.ToString().Replace(":", ".");

string filename = "IncomingProduct-" + date + ".xls";

string subPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "/Documents/Reports/";

    bool isExists = Directory.Exists(subPath);

    if (!isExists)
        Directory.CreateDirectory(subPath);

    xlWorkBook.SaveAs(subPath + filename);//error here
    xlWorkBook.Close(true, misValue, misValue);
    xlApp.Quit();

    System.Diagnostics.Process.Start(subPath + filename);

您不能使用带有斜杠的文件名,因此如果日期带有斜杠,则不会保存它。

是否已存在“/Documents/Reports/”文件?在这种情况下是否应为“//Documents//Reports//?”@N4TKD是的,如果不是,则会创建。在
xlWorkBook.SaveAs
行上设置断点,并检查
子路径
文件名
的内容。执行代码时,这些变量的具体值是什么?我将使用字符串path=path.combine(subPath,filename);非常感谢你的帮助,我在网上搜索了所有的东西,并试图访问我在那里找到的所有东西。最后,这就是解决办法!