仅过滤c#中的excel文件

G_S*_*G_S 12 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 = "Browse Excel file";
if (browseFile.ShowDialog() == DialogResult.Cancel)
Run Code Online (Sandbox Code Playgroud)

使用此代码不仅获得Excel工作表,而且最终获得快捷方式文件.任何人都可以建议我如何限制快捷方式文件.

Vig*_*h.N 9

请看下面的方法是否合适.
在此期间,让我尝试使用反射可能的事情.

    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;
}
Run Code Online (Sandbox Code Playgroud)


Ain*_*llo 6

尝试使用这个。希望有帮助!干杯! :D

BrowseFile.Filter =“ Excel文件(* .xls或.xlsx)| .xls; * 。xlsx ”;