title: C# error With ExcelDataReader
body: <p>Recently I was trying to build an app that can read excel files. But just after I select the excel file I get an error saying this:</p>
  <blockquote>
  <p>'ExcelDataReader.Exceptions.HeaderException' occurred in
  ExcelDataReader.dll</p>
  <p>Additional information: Invalid file signature.&quot;</p>
  <p>The error is caught on line 38</p>
  </blockquote>
  <p>here is a copy of my code</p>
  <pre><code>using ExcelDataReader;
  using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using System.Windows.Forms;
  
  namespace Alt_jde
  {
  public partial class Form1 : Form
  {
      public Form1()
      {
          InitializeComponent();
      }
  
      private void Form1_Load(object sender, EventArgs e)
      {
  
      }
  
      private void label1_Click(object sender, EventArgs e)
      {
  
      }
      DataSet result;
      private void btnOpen_Click(object sender, EventArgs e)
      {
          using(OpenFileDialog ofd = new OpenFileDialog() )
          {
              if (ofd.ShowDialog()==DialogResult.OK)
              {
                  System.IO.FileStream fs = System.IO.File.Open(ofd.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                  IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(fs);   // ERROR HERE
                  var result = reader.AsDataSet(new ExcelDataSetConfiguration()
                  {
                      ConfigureDataTable = (_) =&gt; new ExcelDataTableConfiguration()
                      {
                          UseHeaderRow = true
                      }
                  });
                  cbosheet.Items.Clear();
                  foreach (DataTable dt in result.Tables)
                      cbosheet.Items.Add(dt.TableName);
                  reader.Close();
                      }
          }
      }
  
      private void cbosheet_SelectedIndexChanged(object sender, EventArgs e)
      {
          dataGridView.DataSource = result.Tables[cbosheet.SelectedIndex];
      }
  }
  }
  </code></pre>