问题描述
首先,Excel文档没有人为的空行,我完全删除了我在用vs2008调试导入的时候就没有问题,可以读取到Excel的数据到GridView,但当我用其他的机器访问网站,然后进入这个导入页面的时候,同样的文档却不能导入,实在不知道为什么......我试了很久,以前都没这些问题......下面是我的代码,希望各位给个答案,小弟多谢了!///<summary>///读取Excel文件///</summary>///<paramname="sender"></param>///<paramname="e"></param>protectedvoidbtnReadData_Click(objectsender,EventArgse){this.PanelGrid.Visible=true;stringname=this.FileExcel.PostedFile.FileName;try{if(name.Trim()==string.Empty||Path.GetExtension(name)!=".xls"){Response.Write("<script>alert('请选择Excel文件!')</script>");}else{stringstrcon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+name+";ExtendedProperties=Excel8.0";OleDbConnectionconn=newOleDbConnection(strcon);conn.Open();DataTabledt1=null;dt1=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);if(dt1==null||dt1.Rows.Count==0){return;}stringtablename=dt1.Rows[0]["TABLE_NAME"].ToString();stringstql="select报名参与人ID,用户名,报名人姓名,活动ID,活动名称,手机号码,IP,电子邮箱,固定电话,性别,参加日期,是否参加,是否迟到,是否早退,是否被选中,是否是体验用户,是否特批from["+tablename+"]";OleDbDataAdapteroda=newOleDbDataAdapter(stql,conn);System.Data.DataSetds=newSystem.Data.DataSet();oda.Fill(ds,"Player");DataTabledt=newDataTable();dt.TableName="Player";dt.Columns.Add("报名参与人ID",typeof(System.Int32));dt.Columns.Add("用户名",typeof(System.String));dt.Columns.Add("报名人姓名",typeof(System.String));dt.Columns.Add("活动ID",typeof(System.Int32));dt.Columns.Add("活动名称",typeof(System.String));dt.Columns.Add("手机号码",typeof(System.String));dt.Columns.Add("IP",typeof(System.String));dt.Columns.Add("电子邮箱",typeof(System.String));dt.Columns.Add("固定电话",typeof(System.String));dt.Columns.Add("性别",typeof(System.Int32));dt.Columns.Add("参加日期",typeof(System.DateTime));dt.Columns.Add("是否参加",typeof(System.Int32));dt.Columns.Add("是否迟到",typeof(System.Int32));dt.Columns.Add("是否早退",typeof(System.Int32));dt.Columns.Add("是否被选中",typeof(System.Int32));dt.Columns.Add("是否是体验用户",typeof(System.Int32));dt.Columns.Add("是否特批",typeof(System.Int32));dt.PrimaryKey=newDataColumn[]{dt.Columns["手机号码"]};dt.Rows.Clear();foreach(DataRowViewdrvinds.Tables["Player"].DefaultView){DataRowdr=dt.NewRow();if(dt.Rows.Count==0){dr["报名参与人ID"]=drv["报名参与人ID"];dr["用户名"]=drv["用户名"];dr["报名人姓名"]=drv["报名人姓名"];dr["活动ID"]=drv["活动ID"];dr["活动名称"]=drv["活动名称"];dr["手机号码"]=drv["手机号码"];dr["IP"]=drv["IP"];dr["电子邮箱"]=drv["电子邮箱"];dr["固定电话"]=drv["固定电话"];dr["性别"]=drv["性别"];dr["参加日期"]=drv["参加日期"];dr["是否参加"]=drv["是否参加"];dr["是否迟到"]=drv["是否迟到"];dr["是否早退"]=drv["是否早退"];dr["是否被选中"]=drv["是否被选中"];dr["是否是体验用户"]=drv["是否是体验用户"];dr["是否特批"]=drv["是否特批"];dt.Rows.Add(dr);}else{for(inti=0;i<dt1.Rows.Count;i++){if(dt.Rows.Contains(drv["手机号码"])){break;}else{dr["报名参与人ID"]=drv["报名参与人ID"];dr["用户名"]=drv["用户名"];dr["报名人姓名"]=drv["报名人姓名"];dr["活动ID"]=drv["活动ID"];dr["活动名称"]=drv["活动名称"];dr["手机号码"]=drv["手机号码"];dr["IP"]=drv["IP"];dr["电子邮箱"]=drv["电子邮箱"];dr["固定电话"]=drv["固定电话"];dr["性别"]=drv["性别"];dr["参加日期"]=drv["参加日期"];dr["是否参加"]=drv["是否参加"];dr["是否迟到"]=drv["是否迟到"];dr["是否早退"]=drv["是否早退"];dr["是否被选中"]=drv["是否被选中"];dr["是否是体验用户"]=drv["是否是体验用户"];dr["是否特批"]=drv["是否特批"];dt.Rows.Add(dr);}}}}ASPxGridView1.DataSource=dt;ASPxGridView1.DataBind();this.GridView1.DataSource=dt;this.GridView1.DataBind();conn.Close();}}catch(Exceptionex){Response.Write("<script>alert('操作失败!Excel文件无效!')</script>");}}
解决方案
解决方案二:
权限不够,先把要导入的excel上传到服务器再导。
解决方案三:
上面的大哥好像不完全是那样哦我在我本机访问我的网站也不能导入......