Foxtable(狐表)用户栏目专家坐堂 → 请问如何结束Excel进程


  共有3889人关注过本帖树形打印复制链接

主题:请问如何结束Excel进程

帅哥哟,离线,有人找我吗?
km007
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:5761 威望:0 精华:0 注册:2016/1/28 2:59:00
请问如何结束Excel进程  发帖心情 Post By:2020/4/7 17:19:00 [只看该作者]

Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
Dim rpt As String = ProjectPath & "Reports\资料卡.xls"
wbr.OfficeToolBar = True '如果不需要显示工具栏,可删除此行代码
wbr
.AddRess = rpt


关闭窗口后AfterClose事件代码

FileSys.DeleteFile(rpt,2,2) '则彻底删除之



我想该窗口关闭后,将该Excel文件彻底删除,但是弹出下图报错,请问如何可以解决?



此主题相关图片如下:qq图片20200407171705.png
按此在新窗口浏览图片


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/7 17:32:00 [只看该作者]

强制杀掉execl进程
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
For Each p As System.Diagnostics.Process In ps
    output.show(p.processName)
    If ("Excel" = p.ProcessName)
        msgbox(p.MainWindowTitle)
        p.kill
    End If
Next
FileSys.DeleteFile(rpt,2,2)

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:5761 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2020/4/7 17:43:00 [只看该作者]

这样的话,会把其他Excel的进程都被关掉了,如果我仅想关闭是 WebBrowser 打开的Excel文件的进程呢?

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:5761 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2020/4/7 18:42:00 [只看该作者]

蓝版,请赐教

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/7 20:02:00 [只看该作者]

试试
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
For Each p As System.Diagnostics.Process In ps
    output.show(p.processName)
    If ("Excel" = p.ProcessName andalso p.MainWindowTitle = "")
        msgbox(p.MainWindowTitle)
        p.kill
    End If
Next
FileSys.DeleteFile(rpt,2,2)

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:5761 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2020/4/7 21:15:00 [只看该作者]

以下是引用有点蓝在2020/4/7 20:02:00的发言:
试试
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
For Each p As System.Diagnostics.Process In ps
    output.show(p.processName)
    If ("Excel" = p.ProcessName andalso p.MainWindowTitle = "")
        msgbox(p.MainWindowTitle)
        p.kill
    End If
Next
FileSys.DeleteFile(rpt,2,2)

刚测试,在没有打开其他Excel文件时,这代码是没问题,但如果存在已打开了其他Excel文件时,还是会报一楼的那个截图错误


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/7 21:49:00 [只看该作者]

beforeclose事件

Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
wbr
.AddRess = nothing
application.doevents

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:5761 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2020/4/7 22:35:00 [只看该作者]

蓝版厉害!图片点击可在新窗口打开查看

另外再请教个问题:由于我将窗口中,用控件将  WebBrowser1  显示的Excel文件左上角的 保存按钮 挡住了,不想给操作员点击

自己另外在窗口中添加了一个按钮控件,我想操作员点击该按钮控件后 实现跟 Excel自带的保存功能一样,请问这个代码该如何写呢?

还有就是,  WebBrowser1  显示的Excel,如存在修改过,关闭时,会提示下图的提示


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200407225048.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/4/7 22:52:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/7 22:58:00 [只看该作者]

比较麻烦


下载信息  [文件大小:21.9 KB  下载次数:26]
图片点击可在新窗口打开查看点击浏览该文件:webbrowser操作excel.rar


比如:
Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
oDocument.save

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:480 积分:5761 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2020/4/7 23:59:00 [只看该作者]

蓝版,保存的问题解决了,但占用进程的问题依旧


操作步骤

1、先用OFFICE随便打开一份Excel文件;

2、打开狐表项目窗口中  WebBrowser1  显示Excel文件


BeforeClose事件:


Dim wbr As WinForm.WebBrowser = e.Form.Controls("WebBrowser1")
wbr.AddRess = Nothing
application.doevents

AfterClose事件:


Dim rpt As String = ProjectPath & "Reports\Bee8879fd.xls"
Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
For Each p As System.Diagnostics.Process In ps
    If ("Excel" = p.ProcessName AndAlso p.MainWindowTitle = "")
        p.kill
    End If
Next
Try
    FileSys.DeleteFile(rpt,2,2) '则彻底删除之
Catch ex As Exception
End Try

3、关闭 WebBrowser1 窗口,此时会依旧会出现以下截图提示


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200407235329.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/4/8 0:00:36编辑过]

 回到顶部
总数 11 1 2 下一页