读书人

===============高分求asp.net导出exc

发布时间: 2012-03-05 11:54:02 作者: rapoo

===============高分求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里调用可就惨了。。。找神仙交互去

读书人网 >C#

热点推荐