日期:2014-05-17  浏览次数:20965 次

连接EXCEL "外部表不是预期的格式。"错误
EXCEL文档没有打开时,报错误"外部表不是预期的格式。"
打开EXCEL文档时,能正常取到数据,
请问下是什么原因,如何解决?谢谢
代码如下(红色字体是抛异常的语句):
 private DataSet GetDsFromExcel(string excelFilePath)
        {
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
            OleDbConnection OleConn = new OleDbConnection(strConn);

            try
            {
                // 打开数据源
                OleConn.Open();

                // 取得第一个sheet的名称
                DataTable schemaTable = OleConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                string tableName = schemaTable.Rows[0][2].ToString().Trim();

                // 填充DataSet
                String sql = "SELECT * FROM  [" + tableName + "]";
                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "myTable");

                return OleDsExcle;
            }
            catch (Exception ex)
            {
                m_objLog.Error(ex);
                return null;
            }
            finally
            {
                // 关闭连接
                OleConn.Close();
            }
        }

------解决方案--------------------
excel应该不是excel文件类型,虽然后缀是xls,你可以通过将文件另存为的方式重新指定为excel文件
------解决方案--------------------