读书人

合并excel多个工作表至一个dataset时遇

发布时间: 2012-03-24 14:00:46 作者: rapoo

合并excel多个工作表至一个dataset时遇到的奇怪问题
在将excel数据导入数据库时遇到的问题,如图所示

有些excel表中数据并没有写入dataset中,有些直接为为感叹号
excel中的三个sheet格式相同,后2个sheet是第一个sheet复制过去的,如图

我的代码如下

C# code
 public DataSet ExcelDS(string filenameurl,string tablename)        {            string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filenameurl + ";Extended Properties=\"Excel 12.0;HDR=YES\"";                        OleDbConnection conn = new OleDbConnection(strConn);            conn.Open();            //段Code的用意是在取得所有的SheetName            DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "table" });            DataSet ds = new DataSet();            try            {                for (int i = 0; i < dt.Rows.Count; i++)                {                    //段Code是在查sheet的名字後面有有加上$,有的,就上.                    if (dt.Rows[i]["TABLE_Name"].ToString().IndexOf("$") < 0)                    {                        dt.Rows[i]["TABLE_Name"] += "$";                    }                    OleDbDataAdapter odda = new OleDbDataAdapter("Select * From [" + dt.Rows[i]["TABLE_Name"].ToString() + "] ", conn);                    //读取第i个sheet                    odda.Fill(ds, tablename);                }            }            catch (Exception ex)            {                throw;            }                 return ds;        }


[解决办法]
另外参见
http://dotnet.aspx.cc/file/ADO.NET-Excel-IMEX=1.aspx

再不行,就发excel给我

读书人网 >C#

热点推荐