仅过滤c#中的excel文件

时间:2013-04-05 03:13:54

标签: 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)

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:5)

尝试使用此功能。希望这有帮助!干杯! :d

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