作者flash5566 (闪光56)
看板Visual_Basic
标题[.NET] 代码关闭xlsx档?
时间Sun Nov 17 20:35:02 2019
小弟是vb.net新手,想请教前辈们。
之前公司做一个程式,也是读取xlsx档写入SQL里,最後读取完毕後也顺利用quit代码关
闭xlsx档。
这次也是参照一样的代码,做了另一个程式,debug也有读取完quit代码,可是最後在工
作管理员确认时,发现xlsx还是没有被关闭,也试过com解放xlsx档的代码,一样没有效
。(前一个程式没有用com解放)
问题有点笼统,不知道有没有人有类似经验?感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 126.74.140.197 (日本)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1573994104.A.080.html
1F:→ hulapig: 有先workbook.close吗?11/18 01:45
2F:推 johnpage: Excel 关掉11/18 06:53
3F:推 fumizuki: Workbook关闭 Excel.Application退出11/18 23:06
4F:→ fumizuki: 以上变数参考都释放(指派为 Nothing)11/18 23:06
5F:→ fumizuki: 再不行,就再呼叫 GC.Collect(0)11/18 23:07
6F:推 fumizuki: 透过 Excel 去开启档案,读取内容,容易产生这个问题11/18 23:08
7F:→ fumizuki: 或者改用 ODBC 连接去读取资料就没问题了11/18 23:09
8F:→ fumizuki: ODBC 缺点是第一列要是各个栏位名称,不可缺少11/18 23:10
9F:→ fumizuki: 整栏的资料类型都必须相同,否则会读不到资料值11/18 23:10
10F:→ fumizuki: 亦可采用第三方套件(例如NPOI...)11/18 23:12
谢谢你们的回覆,GC.Collect也用过了没反应,最後用找出所有的Excel档,有被开启的
都会关闭这方法暂时解决了。
※ 编辑: flash5566 (210.253.198.235 日本), 11/19/2019 11:57:15
11F:→ shiangru: COM 元件要先用 Marshal 释放之後再使用 Nothing 释放 04/04 02:46
12F:→ shiangru: 急着马上回收可以再加 GC 参数GCCollectionMode.Forced 04/04 02:49