首页 新闻 会员 周边

C#导入EXCEL到数据库,用OLE连接EXCEL时一直报"外部表不是预期格式"

0
悬赏园豆:50 [已关闭问题]

我的源码:

/// <summary>
        /// 创建连接
        /// </summary>
        /// <param name="dataFile"></param>
        /// <returns></returns>
        public static Boolean Open(String dataFile)
        {
           
            Boolean fRet = false;

            if (dataFile == null || dataFile == String.Empty)
                return false;
            if (!System.IO.File.Exists(dataFile))
                return false;

            /*
            1: Excel 8.0 针对EXCEL 2000 或更高版本;Excel 5.0 FOR EXCEL 97
            2:  HDR == HEADER ROW    表示第一行是否为字段名。Yes为首行字段,No为无首行字段
            3: IMEX 表示对同一列中有混合数据类型的列,是统一按字符型处理,还是将个别不同类型的值读为DBNULL。为混合,为不混合

            sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" + dataFile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
            try
            {
                m_connExcel = new OleDbConnection(sConnString);

                if (m_connExcel != null)
                {

       //打开链接时老是报错
                    m_connExcel.Open(); 
                    fRet = true;
                }
            }
            catch (Exception e)
            {
                fRet = false;
                Trace.WriteLine("COleDbExcelWrapper.Open: Open excel file failed! " + e.Message);
            }

            return fRet;
        }

 

请大家帮忙解决一下,谢谢了,

u_must的主页 u_must | 初学一级 | 园豆:150
提问于:2009-05-17 13:42
< >
分享
其他回答(2)
0

http://www.connectionstrings.com/excel-2007

一起探讨

   sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + dataFile + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";

这个可以,我一测试。

winzheng | 园豆:8797 (大侠五级) | 2009-05-17 14:59
0

你的Excel文件可能不是标准格式(.csv, html等其它兼容格式)。试一下完全用Excel新建一个文件然后再导入。

Azuresong | 园豆:3565 (老鸟四级) | 2009-05-17 18:31
0

string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + fileName;
                string sql = "SELECT * FROM [Sheet1$]";
                OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
                da.Fill(table);

月光小提琴 | 园豆:44 (初学一级) | 2009-05-18 10:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册