C# 在c中只过滤excel文件

C# 在c中只过滤excel文件,c#,C#,我正在用C编写excel工作表,我突然想到只选择excel工作表。 我尝试了以下代码 OpenFileDialog browseFile = new OpenFileDialog(); browseFile.DereferenceLinks = true; browseFile.Filter = "Excel|*.xls|Excel 2010|*.xlsx"; // browseFile.Filter = "Link Files (*.lnk)|*.lnk"; browseFile.Title

我正在用C编写excel工作表,我突然想到只选择excel工作表。 我尝试了以下代码

OpenFileDialog browseFile = new OpenFileDialog();
browseFile.DereferenceLinks = true;
browseFile.Filter = "Excel|*.xls|Excel 2010|*.xlsx";
// browseFile.Filter = "Link Files (*.lnk)|*.lnk";

browseFile.Title = "Browse Excel file";
if (browseFile.ShowDialog() == DialogResult.Cancel)
使用这段代码,我不仅得到了excel表格,而且最终得到了快捷方式文件。
有人能建议我如何限制快捷方式文件吗

试着用这个。希望这有帮助!干杯D


browseFile.Filter=Excel文件*.xls或.xlsx |.xls;*。xlsx

请查看您是否同意以下方法。 同时,让我尝试一下是否可以使用反射

    OpenFileDialog openKeywordsFileDialog = new OpenFileDialog();
    openKeywordsFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    openKeywordsFileDialog.Multiselect = false;
    openKeywordsFileDialog.ValidateNames = true;
    openKeywordsFileDialog.DereferenceLinks = false; // Will return .lnk in shortcuts.
    openKeywordsFileDialog.Filter = "Excel |*.xlsx";
    openKeywordsFileDialog.FileOk += new System.ComponentModel.CancelEventHandler(OpenKeywordsFileDialog_FileOk);
    var dialogResult =  openKeywordsFileDialog.ShowDialog();


void OpenKeywordsFileDialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
         OpenFileDialog fileDialog = sender as OpenFileDialog;
         string selectedFile = fileDialog.FileName;
         if (string.IsNullOrEmpty(selectedFile) || selectedFile.Contains(".lnk"))
         {
             MessageBox.Show("Please select a valid Excel File");
             e.Cancel = true;
         }
         return;
}

反例,因此您也可以尝试组合过滤器:Excel文件|*.xls,*。xlsx@BlackMaggie我希望链接文件受到限制。不允许使用它们。@G\S:尝试设置DereferenceLinks=false;-我认为这是你的问题。“CODE4LIFE我试着把它设置为假。甚至没有帮助。甚至这都不起作用。这只显示了快捷方式。我只想要Excel而没有捷径。谢谢。-我需要知道分号使用分号,即XLLS.xLSX扩展。你也可以考虑直接调用Win32 API。这个OpenKeywordsFileDialog\u文件好吗?是方法还是系统生成的事件。抱歉,忘记为FileOk事件添加处理程序。现在已经编辑了答案。是的,这很有效。但是有没有办法不显示.lnk文件,而不是在单击后显示并限制它们?