[英]C# - interop excel
我想填写Windows表格数据以表现出色。 我给出了验证的代码结尾,因此,如果文件名存在于特定位置,它将不再保存
string savingNewForm = "C:\\temp\\" + temp;
if (File.Exists(savingNewForm))
{
MessageBox.Show("File already exist!");
oBook.Close();
oApp.Quit();
}
else
{
oBook.SaveAs(savingNewForm);
oBook.Close();
oApp.Quit();
MessageBox.Show("Your file saved");
}
但是,当用户保存相同的文件名时,它将给出错误。
我认为主要问题在于if (File.Exists(savingNewForm))
导致不检查文件名是否存在,而是转到else
并弹出excel询问是否要替换。
temp
的值是多少? 如果文件名包含无效字符或太长,则可能存在问题。
从MSDN :
Exists方法不应用于路径验证,该方法仅检查path中指定的文件是否存在。 将无效路径传递给Exists将返回false 。
如果path描述目录,则此方法返回false 。
如果在尝试确定指定文件是否存在时发生任何错误,则Exists方法将返回false 。
如果该目录不存在,或者用户没有读取文件的权限(可能已锁定),则File.Exists()
将返回false。
如果文件存在问题,请参阅Softerware的答案。 如果希望Excel不要求用户覆盖,请尝试:
oApp.DisplayAlerts = false;
尽管我尚未使用您的excel库,但建议您尝试解决方法:
在任何情况下,文件删除错误都将提供更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.