我已经可以实现这个功能了。。
但是效率实在是太低了。。
2000-3000行都要耗时半个小时。。哪位高手有好一点的算法

解决方案 »

  1.   

    你是怎么导的.
    用oledb.去读excel啊.
    读到哪里,如果读到string里的话,要换stringbuilder.
      

  2.   

    用OLE读取或写入会快很多。 
           /// <summary>
            /// 从一个Excel中读取一个Table
            /// Table必须是标准的
            /// </summary>
            /// <param name="file"></param>
            /// <param name="sheetName"></param>
            /// <returns></returns>
            internal static DataTable ReadExcel(string file, string sheetName)
            {
                // TODO:  Add ImpExcel.ReadExcel implementation
                string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
                OleDbConnection conn = null;
                try
                {
                    conn = new OleDbConnection(strconn);
                    conn.Open();                string sql = "select * from [" + sheetName + "$]";
                    OleDbDataAdapter aper = new OleDbDataAdapter(sql, conn);
                    DataSet myset = new DataSet();
                    aper.Fill(myset, sheetName);
                    return myset.Tables[0];
                }
                catch (Exception ex)
                {
                    throw new Exception("Read excel exception!", ex);
                }
                finally
                {
                    if (conn != null)
                        conn.Close();
                }
            }
      

  3.   

    谢谢楼上的。。
    我的也是跟你的差不多的。。我现在慢的原因是要把TABLE里面的数据写到文本框中花的时间太长了。。