title: Problem parsing an XLS file with C#
body: <p>Ok, let's see if I can make this make sense.  </p>
  
  <p>I have a program written that parses an Excel file and it works just fine.  I use the following to get into the file:</p>
  
  <pre><code>string FileToConvert = Server.MapPath(".") + "\\App_Data\\CP-ARFJN-FLAG.XLS";
  string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileToConvert + ";Extended Properties=Excel 8.0;";
  OleDbConnection connection = new OleDbConnection(connectionString);
  connection.Open();
  //this next line assumes that the file is in default Excel format with Sheet1 as the first sheet name, adjust accordingly
  OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [CP-ARFJN-FLAG$]", connection);
  </code></pre>
  
  <p>and this works just fine.  But when I try it on the actual file (it is supplied to me by another program) I get this error:</p>
  
  <pre><code>System.Data.OleDb.OleDbException: External table is not in the expected format. at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() at wetglobe.Page_Load(Object sender, EventArgs e)
  </code></pre>
  
  <p>BUT, this is where I think the problem lies.  If I take that file, and save it with my local Excel, first I get this popup:</p>
  
  <blockquote>
    <p>CP-ARFJN-FLAG.XLS may contain features
    that are not compatible with Text (Tab
    delimited). Do you want to keep the
    workbook in this format?</p>
    
    <ul>
    <li>To Keep this format, which leaves
    out any incompatible features, click
    Yes.</li>
    <li>To preserve the features, click No. 
    Ten save a copy in the latest Excel
    format.</li>
    <li>To see what might be lost, click
    Help.</li>
    </ul>
  </blockquote>
  
  <p>If I click No and then save it as the current Excel format, the program will then work fine.</p>
  
  <p>So I am assuming this is saved in some crazy old Excel format?</p>
  
  <p>I suppose my questions would be:</p>
  
  <ul>
  <li>How can I tell what Excel version
  saved this?</li>
  <li>How can I parse it in its current
  state?</li>
  <li>-or- Can I programatically save it as a newer version?</li>
  </ul>
  
  <p>I hope that is clear... Thank you.</p>