台灣最大程式設計社群網站
線上人數
726
 
會員總數:244676
討論主題:188774
歡迎您免費加入會員
討論區列表 >> C# >> 使用Microsoft.Office.Interop.Excel,轉換成CSV檔案
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
使用Microsoft.Office.Interop.Excel,轉換成CSV檔案
價值 : 50 QP  點閱數:364 回應數:13

樓主

Steven HO
初學者
80 17
405 55
發送站內信

各位大大好

我在C#利用Microsoft.Office.Interop.Excel把*.xls轉成csv
很順利

程式大致如下




重點來了

在此處已轉換成功

但在工作管理員裡會開個一隻excel的程式

我試過

oWB.Close(false);
oApp = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(oApp);



oApp.Workbooks.Close();

沒一個可以在程式結束後關閉工作管理員的excel執行檔

我也到國外找了很多範例,也是關不掉

請問各位大大有甚麼好建議的嗎

搜尋相關Tags的文章: [ Excel ] , [ xls ] , [ csv ] ,
本篇文章發表於2019-03-19 15:08
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
直接砍了 "EXCEL.EXE"
http://xtony77.blogspot.com/2011/07/c_182.html


本篇文章回覆於2019-03-19 16:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Steven HO
檢舉此回應
這方法確實不錯

但又怕使用者正在使用中的Excel會被我關掉

還有其他方法嗎??
本篇文章回覆於2019-03-19 18:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

P陳
檢舉此回應
我是這樣關掉 xls 的,您組合一下試看看
只用 Close 是闗不掉的

但又怕使用者正在使用中的Excel會被我關掉 (先判斷開啟的 EXCEL 是什麼檔名,再刪 process 就不會刪錯了)





本篇文章回覆於2019-03-19 20:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Steven HO
檢舉此回應
小羊窒息大大給的方法最有效,全砍是沒問題的

P陳給的方法無效,背景程式還是咬住

我現在想用P陳告知的"先判斷開啟的 EXCEL 是什麼檔名"

再來把小羊窒息大大只kill那隻程式

所以想請P陳大大告知如何將我開啟的EXCEL(我有開啟的檔名),再用kill直接刪除那隻程式
本篇文章回覆於2019-03-20 09:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Steven HO
檢舉此回應
小羊窒息大大

請問你的程式可以把迴圈拿掉呢??我先關掉一支背景程式

再來研究如何關掉我開啟的Excel(我有檔名),單獨關掉那一支程式
本篇文章回覆於2019-03-20 09:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Steven HO
檢舉此回應
小羊窒息大大

請問你的程式可以把迴圈拿掉呢??我先關掉一支背景程式

再來研究如何關掉我開啟的Excel(我有檔名),單獨關掉那一支程式
本篇文章回覆於2019-03-20 09:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應

本篇文章回覆於2019-03-20 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
如果你的程式是用在單機(不是Server提供轉檔的話)

在使用者執行轉檔功能之前, 先檢查是否已有Excel在執行中, 如果有就提示使用者[準備強制關閉],

========================
(其實更合適的方式是改用NPOI來讀取Excel, 再手動輸出至csv文字檔)
本篇文章回覆於2019-03-20 10:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

春天
檢舉此回應
經測試可正常關閉

本篇文章回覆於2019-03-20 16:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

P陳
檢舉此回應
原則 xlsapp.quit 就可以關掉了
XlsApp.DisplayAlerts = True <---則是告知要不要顯示訊息
本篇文章回覆於2019-03-20 20:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Steven HO
檢舉此回應
Quit我試過很多次,就是關不掉

所以我現在使用小羊大大的方法來關

反正也是每日深夜才用工作排程開啟轉換程式

謝謝大家
本篇文章回覆於2019-03-21 09:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

Steven HO
檢舉此回應
謝謝大家

我試過Quit很多次
關不掉
最後還是用小羊大大的方法來關

反正這轉檔程式是用工作排程器在深夜執行
謝謝大家嚕
本篇文章回覆於2019-03-21 09:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
他的狀況我之前已經遇過了,
一樣是為了轉檔...


特定的主機, 特定的軟體版本必定發生一堆程序停留在工作管理員裡面...
(到底是哪個軟體版本發生這狀況的, 原因不明, 最終就是直接砍了 WORD.EXE, EXCEL.EXE, 先求治標)

後來NPOI出爐, 新的需求改用NPOI來做, 舊的需求維持不變, 一樣用舊方式(看客戶哪一天想要拿錢來改, 再說了)
本篇文章回覆於2019-03-21 10:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.