title: How to import Excel which is in HTML format
body: <p>I have exported the data from database using HttpContext with formatting of table, tr and td. I want to read the same file and convert into datatable.</p>
  
  <pre><code>&lt;add name="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='HTML Import;HDR={1};IMEX=1'" /&gt;
  
  &lt;add name="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1};IMEX=1'" /&gt;
  
      private DataTable GetTableFromExcel()
      {
          DataTable dt = new DataTable();
  
          try
          {
              if (exclFileUpload.HasFile)
              {
                  string FileName = Path.GetFileName(exclFileUpload.PostedFile.FileName);
                  string Extension = Path.GetExtension(exclFileUpload.PostedFile.FileName);
                  string FolderPath = Server.MapPath(ConfigurationManager.AppSettings["FolderPath"]);
                  //string NewFileName = string.Format("{0}_{1}", DateTime.Now.ToString().Replace("/", "").Replace(" ", "").Replace(":", ""), FileName);
                  string FilePath = Path.Combine(string.Format("{0}/{1}", FolderPath, FileName));
                  exclFileUpload.SaveAs(FilePath);
                  string conStr = "";
                  switch (Extension)
                  {
                      case ".xls": //Excel 97-03
                          conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
                          break;
                      case ".xlsx": //Excel 07
                          conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
                          break;
                  }
                  conStr = String.Format(conStr, FilePath, true);
                  OleDbConnection connExcel = new OleDbConnection(conStr);
                  OleDbCommand cmdExcel = new OleDbCommand();
                  OleDbDataAdapter oda = new OleDbDataAdapter();
  
                  cmdExcel.Connection = connExcel;
  
                  connExcel.Open();
                  DataTable dtExcelSchema;
                  dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                  string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
                  connExcel.Close();
  
                  connExcel.Open();
                  cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
                  oda.SelectCommand = cmdExcel;
                  oda.Fill(dt);
                  connExcel.Close();
                  File.Delete(FilePath);
  
              }
          }
          catch (Exception ex)
          {
  
          }
          return dt;
      }
  </code></pre>
  
  <p>When using the second connection string I am getting error "External table is not in the expected format on connection.Open()." But when using the first, I am getting error on reading the sheet name.</p>
  
  <p>Please tell me how to read the sheet or, directly, data from Excel. </p>