EXCEL导出问题,请教高手 急急!!

问题描述

从dategrid中导出数据到EXCEL中,导出后EXCEL处于打开状态,将其关闭,桌面上EXCEL显示已经关闭。但是任务管理器中还存在这个EXCEl的进程!怎么将任务管理器中EXCEL进程同时关闭?

解决方案

解决方案二:
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsFile)GC.Collect()//其中xlsFile是个com的Object
解决方案三:
可能对象没有销毁!!用GC!!
解决方案四:
privatevoidKillProcess(stringprocessName){System.Diagnostics.Processmyproc=newSystem.Diagnostics.Process();//得到所有打开的进程try{foreach(ProcessthisprocinProcess.GetProcessesByName(processName)){if(!thisproc.CloseMainWindow()){thisproc.Kill();}}}catch(ExceptionExc){msg.Text+="杀死"+processName+"失败!";}}
解决方案五:
我只要关闭当前的这一个EXCEL即可,不能关闭所有的EXCEl进程
解决方案六:
不知道你的是桌面程序还是web程序.你到网上找一个好点Excel导出的方法,网上很多的!有不占用进程的.
解决方案七:
一直被一个问题困扰就是导出excel时如何关闭excel进程,我使用过oExcelApp.Quit();也用过GC回收,结果都不理想,后来发现可以kill进程,但是问题是kill进程时不好解决多人并发的使用,比如一个人在导表然后kill所以的excel但是如果同时又有人在导表那么这就把另外一个excel结束了,现在我们要办的是如何kill当前这个进程,这里我们先看一下代码:oExcelApp.Quit();oExcelApp=null;PublicMethod.Kill(oExcelApp);//调用kill当前excel进程PublicMethod.Kill()内容是:usingSystem.Runtime.InteropServices;publicclassPublicMethod{publicPublicMethod(){////TODO:在此处添加构造函数逻辑//}[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternintGetWindowThreadProcessId(IntPtrhwnd,outintID);publicstaticvoidKill(Excel.Applicationexcel){IntPtrt=newIntPtr(excel.Hwnd);//得到这个句柄,具体作用是得到这块内存入口intk=0;GetWindowThreadProcessId(t,outk);//得到本进程唯一标志kSystem.Diagnostics.Processp=System.Diagnostics.Process.GetProcessById(k);//得到对进程k的引用p.Kill();//关闭进程k}}这样我们就可以关闭当前进程excel而不是杀掉所有的类型为excel进程了,------------------------------------------------------------------------------找到了一个这样的但运行时告诉我excel.Hwnd出错
解决方案八:
我的是桌面程序,不知道获得进程的句柄需要权限吗?不是管理员权限不能得到这个句柄吗?
解决方案九:
已经销毁了......
解决方案十:
引用1楼tianrui456的回复:

System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsFile)GC.Collect()//其中xlsFile是个com的Object

解决方案十一:
这些已经写过了
解决方案十二:
太深奥了
解决方案十三:
它不能关闭自己所在的内存,所以,你用关闭后,可能还不成功。把这个功能写在一个方法F,然后另写一个方法调用F,调用GC内存强制回收
解决方案十四:
想问你一下我想取得EXCEL的句柄该怎么做啊下面的方法:usingSystem.Runtime.InteropServices;publicclassPublicMethod{publicPublicMethod(){////TODO:在此处添加构造函数逻辑//}[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstaticexternintGetWindowThreadProcessId(IntPtrhwnd,outintID);publicstaticvoidKill(Excel.Applicationexcel){IntPtrt=newIntPtr(excel.Hwnd);//得到这个句柄,具体作用是得到这块内存入口intk=0;GetWindowThreadProcessId(t,outk);//得到本进程唯一标志kSystem.Diagnostics.Processp=System.Diagnostics.Process.GetProcessById(k);//得到对进程k的引用p.Kill();//关闭进程k}}老是报错说是excel.Hwnd无效......不知道怎么回事??很是郁闷......
解决方案十五:
使用COM要注意“用完即释放”原则。你用excel会有那些applicationbooksheet之类的,用完之后,全部释放掉,在任务管理器就看不到它了。Marshal.ReleaseComObject(excelApp);excelApp=null;..........

时间: 2024-09-16 13:42:21

EXCEL导出问题,请教高手 急急!!的相关文章

请教C#,Form窗口的一个Button,调用Excel导出表格时出错

问题描述 请教C#,Form窗口的一个Button,调用Excel导出表格时出错 一个调用Excel导出表的操作,出错.请熟悉excel调用的高手指教. 相关代码: private void button1_Click(object sender, EventArgs e) { saveFileDialog1.AddExtension = true;//对话框自动在文件名中添加扩展名 saveFileDialog1.FileName = name+"与"+name1+"担保信

java excel导出样式 急急。。求大神帮忙

问题描述 java excel导出样式 急急..求大神帮忙 // 定义excel标题样式 public static WritableCellFormat ExcelTitleStyle() { WritableFont wfTitle = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.fo

php上传excel导出pdf~菜鸟求教,大神指点

问题描述 php上传excel导出pdf~菜鸟求教,大神指点 烦了我三个星期的需求:在线excel转pdf. 需求是把excel上传后经过php转为pdf,我开是利用了phpexcel,上传后再用tcpdf生成,但是phpexcel无法,或者说找不到获取列宽和行高的函数.然后就直接用phpexcel调用tcpdf的类库输出,但是就生成乱码 - -. 目前使用的环境是PHP5.4+linux+tengine 现在有几个问题,想请教各路大神: 1.phpexcel如何获取列宽和行高 2.如何生成pd

关于EXCEL导出很慢的原因

问题描述 各位,我的服务器环境是WIN2008,网络是VPN专用通道,我做EXCEL导出,只是几十条记录,从客户端导出都要3-5分钟之久,我用了流的方式导EXCEL,也用SmartUpload试过.但都没效果.但在本地测试时,一点问题都没有,响应也特别快.我觉得不是和这个网络有关系啊,有人碰到过类似的问题吗.请教了. 解决方案 解决方案二:这个最好断点看在哪个节点上慢.解决方案三:和网络有关,但是一般都是代码的问题,现在网速最慢都有那么快了,在代码里面输出下时间看看哪个地方影响最大

VBA将Excel导出为XML

以下代码的功能,是配合select,将Excel导出为XML文件. Const stSQL As String = "SELECT * FROM [Report]" Dim stCon As String stCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ThisWorkbook.FullName & ";" & _

htmltoexcel导出问题-asp.net excel导出问题

问题描述 asp.net excel导出问题 Response.Clear(); Response.Charset = ""utf-8""; Response.ContentType = ""application/vnd.ms-excel""; //Response.ContentType = ""application/octet-stream""; Response.Content

visual studio-导出excel表 只能导出到服务器而本地缺没有,如何把excel导出到本地,详细过程 谢谢!

问题描述 导出excel表 只能导出到服务器而本地缺没有,如何把excel导出到本地,详细过程 谢谢! 用VS2013编写的.net程序,做好了一个导出按钮,需要的功能是把一个table表的内容导入到excel表中并按照一定的路径导出来,但是每次点击导出的时候总是导入到的是服务器的所属路径,本地路径却没有,如何做才能导出到本地路径呢?求大神指点. 解决方案 先导出到服务器上,然后再让客户端下载. 解决方案二: http://www.cnblogs.com/weixing/archive/2012

求救-网站服务器被CC攻击,导致cpu高达100%。请教高手解决方法!

问题描述 网站服务器被CC攻击,导致cpu高达100%.请教高手解决方法! 网站服务器被CC攻击,w3pw进程超过25%导致cpu高达100%.请教高手解决方法!

excel导出oracle数据汉字乱码,但是在PLSQL下或GOLDEN下都正常!

问题描述 excel导出oracle数据汉字乱码,但是在PLSQL下或GOLDEN下都正常! excel导出oracle数据汉字乱码,但是在PLSQL下或GOLDEN下都正常!请大神帮忙! 解决方案 应该是字符集的问题,把字符集设置为UTF-8试试