Excel.Application myExcel=new Excel.Application();
myExcel.Application.Workbooks.Add(true);
//让Excel可见
myExcel.Visible=true;
myExcel.Cells[1,8]="'"+"成人教育培训信息表";//表名称,以单引号开头为纯文本
myExcel.Cells[2,8]="'"+"打印时间:"+System.DateTime.Now.ToShortDateString().ToString();
for(int i=0;i<ds.Tables["CRJYinformation"].Rows.Count;i++) 

for(int j=1;j<ds.Tables["CRJYinformation"].Columns.Count;j++) 

//以单引号开头,表示该单元格为纯文本 
myExcel.Cells[2+i,j]="'"+ds.Tables["CRJYinformation"].Rows[i][j]; 


ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

解决方案 »

  1.   

    你这个比较麻烦,需要在控制面板的管理器里组件服务里找到Excel的Com组件。把AspNEt(iis5)或者是Network Service(iis6)帐户的权限加上去。
      

  2.   

    (三).不能读取的原因 以及 权限问题解决  a. 原因是:  方法 1 是用流的格式实现的,简单的说它不是真正的Excel格式,而 3 是调用的
         Excel Com组件,生成的是真正的Excel文档,所以能读取(1也可以读取,但也要用Stream类读取,     如果数据有些复杂的话,会很麻烦).  用1和3方法生成的文件及文件图标一模一样,并且用Excel      应用程序打开后显示效果也是一样的.  但当用记事本分别打开1和3生成的*.xls文件时,就明
         显看到它们的不同了.(您可以下载一下本示例代码程序,分别生成两个文件,对比一下)  b.在使用Excel com组件时除了装Office-Excel以外,一般还要设置一下Com的访问权限,步骤如下:  
         I.如果是Window2003 ->控制面版 -> 管理工具 -> 组件服务 -> 
           打开树级目录找到子目录DCOM配置 -> Microsoft Excel 应用程序 
           -> 右击选“属性” -> 在弹出对话窗口中选“安全”选项卡->
           -> 将启动和激活权限设为自定义->点击编辑按钮->
           ->在新窗口中将Everyone用户加入,选中复选框"启动权限",给予启动权限     II.如果是WindowXP ->控制面版 -> 管理工具 -> 组件服务(繁体为"元件服务") -> 
           打开树级目录找到子目录DCOM配置 -> Microsoft Excel 应用程序 
           -> 右击选“属性” -> 在弹出对话窗口中选“安全”选项卡->
           -> 将启动和激活权限设为自定义->点击编辑按钮->
           ->在新窗口中将Everyone用户加入,选中复选框"远程启动",给予远程启动权限
    http://blog.csdn.net/ChengKing/archive/2005/11/29/539514.aspx