龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

asp.net导出excel数据的常见方法汇总(5)

时间:2014-10-29 15:09来源:网络整理 作者:网络 点击:
分享到:
2、EXCEL指定文件保存 复制代码 代码如下: myBook.Close(true, FilePath +_file_Name, null); 七、释放EXCLE对象的资源与结束EXCEL 进程 关于这方面内容有好多网友都在讲

2、EXCEL指定文件保存
   

复制代码 代码如下:
myBook.Close(true, FilePath +_file_Name, null);

七、释放EXCLE对象的资源与结束EXCEL  进程
   关于这方面内容有好多网友都在讲多种方法,经过本人实践,以下方面才能真正做到结束EXCEL的任务进程:
1、将所有以上对EXCEL的操作放到一个方法中,
2、在操作EXCEL后,即时将不使用对象一一释放并赋null值:
  
复制代码 代码如下:
System.Runtime.InteropServices.Marshal.ReleaseComObject(mysheet);
  mysheet=null;
  System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook);
  myBook=null;
  System.Runtime.InteropServices.Marshal.ReleaseComObject(myBooks);
  myBooks=null;
  System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
  myExcel=null;

3、再新建一个方法,并以该方法中执行上面新建的操作EXCEL方法,并在执行完操作EXCEL方法的后面添加GC.Collect():
复制代码 代码如下:
//下面方法中OutPutEXCEL()方法是输出EXCEL文件的对EXCEL 操作的方法
private void killExcel()
{
  outPutEXCEL();
  GC.Collect();
  GC.WaitForPendingFinalizers();
}

    好多网友都在介绍使用GC.Collect()释放EXCEL占用的资源来结束EXCEL进行,如果将“GC.Collect();”与操作EXCEL的业务写在一个程序块中,“GC”是永远不能结束EXCEL进程的,在WEB应用程序中,这种现象是很可怕的事情。原因是GC不会清理本程序块中的垃圾内存的。

4、在业务事件中调用killEXCEL()方法:

复制代码 代码如下:
protected void LinkButton3_Click(object sender, EventArgs e)
{
  //导出EXCEL
  killExcel();
}

八、一些权限的基本设置:

使用以上方法在开发环境中调试程序没有一点问题,等发布到服务器上后,程序还是不能正常运行,需要进行如下的权限设置:

.NET导出Excel遇到的80070005错误的解决方法:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。
具体配置方法如下: 
① 在服务器上安装office的Excel软件.
② 在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 
③ 依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
④ 在"DCOM配置"中找到"Microsoft  Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框 
⑤ 点击"标识"标签,选择"交互式用户" 
⑥ 点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK  SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限. 
⑦ 依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK  SERVICE"用户,然后赋予"本地访问"权限. 
⑧ 如果交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。进一步的解决方式还有待探讨。 
⑨ 采用第8点的设置后,打开Excel可能会出现“无法使用对象引用或链接”,并且不能进行单元格粘贴。原因不明,取消设置后即可消失。

希望本文所述对大家的asp.net程序设计有所帮助。

精彩图集

赞助商链接