精易论坛

标题: 带EXCEL组件的多线程程序结束的问题 [打印本页]

作者: 砖头文    时间: 2025-2-25 11:23
标题: 带EXCEL组件的多线程程序结束的问题
涉及EXCEL组件的多线程,应该怎么关闭才最正确?不知道销毁应该要写哪些内容?之前不注意乱关闭,导致EXCEL文件都在只读状态,而且也不知道会不会涉及后台资源的问题。


  
子程序名返回值类型公开备 注
读取数据  
线程_进入许可区 (许可证)
初始化COM库 (0)
Excel程序1.创建 ()
Excel工作簿1.置程序 (Excel程序1)
Excel工作簿1.打开 (文件路径)
Excel工作簿1.激活工作簿 ()
Excel工作簿1.首单元格 = “A1”
Excel工作簿1.尾单元格 = “A1”
Excel工作簿1.关闭 ()
Excel工作簿1.释放 ()
Excel程序1.退出 ()
Excel程序1.释放 ()
销毁COM库 ()
线程_退出许可区 (许可证)
按钮1.禁止 = 真
许可证 = 线程_创建许可证 ()
线程句柄 = 线程_启动 (&读取数据)
线程_等待 (线程句柄, )
按钮1.禁止 = 假
执行 (, 路径, , , )
信息框 (“完成”, 0, , )


i支持库列表   支持库注释   
eExcel2000EXCEL2000支持库



--------------------------------------------------------------------
所以这个“启动窗口_将被销毁”应该怎么写才最正确??这样写好像也不太行?

Excel工作簿1.关闭 ()
Excel工作簿1.释放 ()
Excel程序1.退出 ()
Excel程序1.释放 ()

销毁COM库 ()
线程_退出许可区 (许可证)



作者: 砖头文    时间: 2025-2-25 11:25
上面的代码显示有点问题,重新发一下
  
子程序名返回值类型公开备 注
读取数据  
线程_进入许可区 (许可证)
初始化COM库 (0)
Excel程序1.创建 ()
Excel工作簿1.置程序 (Excel程序1)
Excel工作簿1.打开 (文件路径)
Excel工作簿1.激活工作簿 ()
Excel工作簿1.首单元格 = “A1”
Excel工作簿1.尾单元格 = “A1”
Excel工作簿1.关闭 ()
Excel工作簿1.释放 ()
Excel程序1.退出 ()
Excel程序1.释放 ()
销毁COM库 ()
线程_退出许可区 (许可证)


i支持库列表   支持库注释   
eExcel2000EXCEL2000支持库


  
按钮1.禁止 = 真
许可证 = 线程_创建许可证 ()
线程句柄 = 线程_启动 (&读取数据)
线程_等待 (线程句柄, )
按钮1.禁止 = 假
执行 (, 路径, , , )
信息框 (“完成”, 0, , )


作者: LWB666    时间: 2025-2-25 13:48
打开和关闭只用在窗口创建完毕和窗口销毁时候写, 线程里只写读取等操作
作者: 砖头文    时间: 2025-2-25 14:45
LWB666 发表于 2025-2-25 13:48
打开和关闭只用在窗口创建完毕和窗口销毁时候写, 线程里只写读取等操作

没明白,希望详细多多指教
作者: 砖头文    时间: 2025-2-25 17:59
这是程序程序,为什么“__启动窗口_将被销毁”时,这些EXCEL程序关闭没有执行?

测试.e

974.79 KB, 下载次数: 3, 下载积分: 精币 -1 枚


作者: LWB666    时间: 2025-2-25 20:06
不建议你用官方库, 吴总自己都不维护了
用libxl: https://125.confly.eu.org/forum.php?mod ... amp;highlight=libxl




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4