问题描述
本地和iis都是同一台机器publicstaticSystem.Data.DataSetExcelSqlConnection(stringfilepath,stringtableName,stringIsXls){stringstrCon="";if(IsXls==".xls"){strCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filepath+";ExtendedProperties='Excel8.0;HDR=YES;IMEX=1'";}else{strCon="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+filepath+";ExtendedProperties='Excel12.0;HDR=YES;IMEX=1'";}OleDbConnectionExcelConn=newOleDbConnection(strCon);try{//Page.ClientScript.RegisterStartupScript(Page.GetType(),"","<script>alert('"+strCon+"');</script>");stringstrCom=string.Format("SELECT*FROM["+Getstname(filepath,IsXls)+"]");ExcelConn.Open();OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,ExcelConn);DataSetds=newDataSet();myCommand.Fill(ds,"["+tableName+"$]");ExcelConn.Close();returnds;}catch{ExcelConn.Close();returnnull;}}privatestaticstringGetstname(stringname,stringIsXls){stringstrConn="";if(IsXls==".xls"){strConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+name+";ExtendedProperties='Excel8.0;HDR=YES;IMEX=1'";}else{strConn="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+name+";ExtendedProperties='Excel12.0;HDR=YES;IMEX=1'";}OleDbConnectionconn=newOleDbConnection(strConn);conn.Open();DataTableschemaTable=conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});stringtableName=schemaTable.Rows[0][2].ToString().Trim();conn.Close();returntableName;}stringfilename=File_ph_order.FileName;//获取Execle文件名DateTime日期函数if(!Directory.Exists(Server.MapPath(("~/upfiles/")))){Directory.CreateDirectory(Server.MapPath(("~/upfiles/")));}stringsavePath=Server.MapPath(("~/upfiles/")+filename);//Server.MapPath获得虚拟服务器相对路径txt_key.Text=savePath;File_ph_order.SaveAs(savePath);//SaveAs将上传的文件内容保存在服务器上DataSetds=ExcelSqlConnection(savePath,filename,IsXls);//调用自定义方法DataRow[]dr=ds.Tables[0].Select();//定义一个DataRow数组asdfadfintrowsnum=ds.Tables[0].Rows.Count;
解决方案
解决方案二:
可能你IIS的电脑没有office或者没有引擎或者没有权限..而且只有这3种可能..建议这样玩..
解决方案三:
看一下,设置IISmime,扩展名为xls,类型/子类型为application/vnd.ms-excel,
解决方案四:
你连“抛什么错”都懒得贴出来吗?
解决方案五:
路径对么?filepath是什么?这个路径对于IIS账户来说有读写权限么?
解决方案六:
将Exception发出来呀,帮你搞定!
解决方案七:
Excel,不喜欢用微软的引擎只喜欢用
解决方案八:
先把错误信息帖出来,否则谁也不知道这么解决