日期:2014-05-20  浏览次数:20882 次

===============高分求asp.net导出excel后 无法远程访问问题==========================
问题是这样的:   在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();  
#endregion

Response.Redirect(FilePath);


------解决方案--------------------
这个其实就是下载一个Excel文件到客户端,跟权限没有关系吧?

建议检查一下客户端,看是不是安装了什么流氓的IE插件原因导致的

回复了两次~~
------解决方案--------------------
看看权限
------解决方案--------------------
1,可以启用模拟,模拟一个管理员权限的用户进行测试
http://support.microsoft.com/?id=306158
2,两个excel版本相同么?不同的版本参数不同
3,不建议在服务器端使用office应用程序
http://support.microsoft.com/kb/288367/zh-cn

4,由于excel与html的兼容性,你只需要生成扩展名字为.xls的文本文件即可.这样简单方便少出错

------解决方案--------------------
直接new个DataGrid之类的然后Render出来存成后缀名xls就行了,还在服务器端用什么office啊晕。。。office遇到意外情况的默认做法是和用户交互,iis里调用可就惨了。。。找神仙交互去