繁体   English   中英

C#-互操作性Excel

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM