问题是这样的: 在asp.net中,把dataTable中的数据导入到excel. 目前本地已经测试没有问题,但局域网中的其它机子访问导出后的excel文件时,没有任何反映.     我已经设置了文件目录everyone读写权限. 以及在Dcom配置中的excel应用程序的"启动和激活权限" "访问权限" 给于了everyone所有的权限.Excel.ApplicationClass myApp;        
Excel.Workbook myBook; 
Excel.Worksheet mySheet; 
string tableName = "mp_ZZFY";
string FilePath = Server.MapPath(tableName); //模板文件路径myApp = null; 
myBook = null; 
mySheet = null; object oMissiong = System.Reflection.Missing.Value; myApp = new Excel.ApplicationClass(); myApp.Visible = false;                       myApp.Workbooks.Open(FilePath, oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong); myBook=myApp.Workbooks[1]; mySheet=(Excel.Worksheet)myBook.ActiveSheet; #region 一个萝卜一个坑
mySheet.Cells[i,j] = DataTable中的数据;
.......
#endregion
myBook.Save();myBook.Close(true,FilePath,true);  //myApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(mySheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(myApp); GC.Collect(); 
#endregionResponse.Redirect(FilePath);

解决方案 »

  1.   

    这个其实就是下载一个Excel文件到客户端,跟权限没有关系吧?建议检查一下客户端,看是不是安装了什么流氓的IE插件原因导致的
      

  2.   

    给你另外一条思路
    private void btnMIME_Click(object sender, System.EventArgs e)
    {
    BindData(); Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("Content-Disposition", "inline;filename="
    +   HttpUtility.UrlEncode("下载文件.xls",Encoding.UTF8   )   );   
    //如果输出为Word,修改为以下代码
    //Response.ContentType = "application/ms-word" 
    //Response.AddHeader("Content-Disposition", "inline;filename=test.doc") 
    StringBuilder sb=new StringBuilder(); 
    System.IO.StringWriter sw = new System.IO.StringWriter(sb);
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
    sb.Append("<html><body>");
    dgShow.RenderControl(hw);
    sb.Append("</body></html>"); 
    Response.Write(sb.ToString());
    Response.End();
    }
    private DataSet BindData()
    {
    SqlConnection myConnection = new SqlConnection( "server=(local);uid=sa;pwd=111;database=Pubs" ); 
    DataSet myDataSet = new DataSet(); 
    SqlDataAdapter myDataAdapter = new SqlDataAdapter("Select * From Authors", myConnection );
    myDataAdapter.Fill( myDataSet, "Authors" );
    dgShow.DataSource = myDataSet.Tables[0].DefaultView;
    dgShow.DataBind();
    return myDataSet;

    }
      

  3.   

    樓主在Response.Redirect(FilePath);這條語句設個斷點,看看路徑是否正確。