作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 終止處理程序中的Excel.exe
時間Thu Dec 9 02:44:57 2010
原文恕刪..
我提一下以前我在做 excel 自動化時候,參考過哪些網站好了
1. 如何使用MFC和類型庫創建自動化項目
說明:基本初始化
http://www.vckbase.com/document/viewdoc/?id=1409
2. VC中調用EXECL模板生成報表
說明:設定文字、表格控制
http://www.vckbase.com/document/viewdoc/?id=1168
3. 針對Excel表格文件操作的編程實現
說明:傳說中 CSpreadSheet 應用
http://www.vckbase.com/document/viewdoc/?id=693
4. 直接通過ODBC讀寫Excel表格文件
說明:ODBC 讀寫
http://www.vckbase.com/document/viewdoc/?id=421
5. 如何將 Excel 自動化,然後知道使用者關閉 Excel
說明:基本初始化
http://support.microsoft.com/kb/192348/zh-tw
6. 如何使用自動化來修改 Office 功能表
說明:excel 之 OLE/COM 元件關係
http://support.microsoft.com/kb/180625/zh-tw
7. 如何建立使用 MFC 和型別程式庫的自動化專案
說明:初始化,與 1 似
http://support.microsoft.com/kb/178749/zh-tw
8. (轉貼整理)VC讀取Excel文件內容(Excel自動化編程)
說明:基礎介紹
http://0rz.tw/9ON45 (太長, 縮址)
9. VC++中實現Excel自動化編程
說明:線上 pdf, 6 頁, 主要做資料讀寫
http://www.doc88.com/p-58761317986.html
10. 自動化excel,如何選中一列,並將該列的數據格式設置為時間 -.NET技術 / VC.NET
說明:excel 資料設定
http://www.hn1c.com/diannao/dn106273/
11. VC:數據輸出在多個Excel工作表中
說明:使用 ADO 技巧
http://0rz.tw/AsCRj (太長, 縮址)
12. 純 C++ 代碼創建並保存 EXCEL 文件
說明:會 init 後可先看這個
http://www.cppblog.com/azhisoft/articles/419.html
13. vc 如何操作 excel2003(注意一定是2003) 編程
說明:這篇對於儲存格格式有介紹怎麼寫
http://zhidao.baidu.com/question/40379986.html?si=1
14. 如何將C語言的輸出倒入Excel工作表
說明:裡面有幫你包一些 function 出來
http://zhidao.baidu.com/question/50693292.html?si=2
15. 怎麼用VC++對EXCEL表格進行讀取、排序、輸出
說明:排序功能較為罕見,但這篇有提到。
http://0rz.tw/CGozs (太長, 縮址)
16. VC操作Excel-Automation版
說明:基本操作
http://apps.hi.baidu.com/share/detail/2680421
17. VC操作Excel(轉載)
說明:基本操作,建議這篇要看。
http://blog.csdn.net/bodybo/archive/2009/05/27/4219242.aspx
18. 自動產生Excel檔
說明:這篇對我而言是很重要的參考資料,可惜現在已關站。
現在我也在找有沒有人曾到這網站有留下它的說明或是 demo code。
http://www.intra.idv.tw -> C程式語言 -> C語言大學
-> MFC實例 -> 自動產生Excel檔
19. CSpreadSheet - A Class to Read and Write to Excel
and Text Delimited Spreadsheet
說明:目前提供免費操作 excel , 我覺得它是最有名的
http://0rz.tw/GiQpB
20. BasicExcel - A Class to Read and Write to Microsoft Excel
說明:提供包好的 excel class 函數, 包含 AddSheet
http://0rz.tw/abQkY
21. Use Visual Studio 2008 C++/CLI to Automate Excel
說明:用 CLI 去畫 excel 的圖
http://0rz.tw/uWdDd
22. How to use Managed C++ to Automate Excel
說明:這應該也是用 .Net/CLI 去畫 excel 圖 (不好意思,沒碰過 .Net/CLI)
http://0rz.tw/baQK1
23. ????????????? (看不懂日文..)
說明:日文網站,這裡教得超多。建議配合 dr.eye 用日譯繁功能。
http://www.ujasiri.com/prglib/vc/vc.html
最後我做出來的功能其實不多,
但每次都要把那些 font.h, excel.h 全都拉進 project 裡面。
我覺得很煩,所以乾脆就把這些東西全都塞進 cexcel.h ,
同時再實做自己的 class CExcel, 大致上也只有下面幾個功能
(1) Sheet -> add, delete,
(2) Cell -> merge, settext, textcolor, ...
(3) ReadAs -> int, string, date, time, datetime.
(4) Sort -> Sort1, Sort2, Sort3
(5) DrawChart
(6) SaveChart
(7) open, close, save, saveas, quit
就是因為所有東西都包進來,而且自己又不夠力,
整個 class 寫得又醜又差,當時自已寫 + 測試花了 2 weeks,
最後才生成一個每次要用,就直接包進去的 cexcel.h,
不過這個 cexcel.h 有一萬二千多行,大小有 350 KB 左右,
沒辦法,我又笨沒不夠力,到現在還是不敢丟出來給別人看,
丟出來也只是給大家笑而已。
所以才會想問你,你到底要做到多大?
如果 excel 自動化真的要做很大的話,
我建議你轉寫 excel VBA 真的會好做很多事。
當然,到時等你手邊案子結束時, 也歡迎您 po 一篇心得文出來一起分享~~
--------------------------------------------------------
剛又試了一下, 之前是用 vc6 + excel 2007 + xp 開發,
包出來的 class 再給 vc2008 + xp 開發用, 還蠻正常的
(手邊office 2010,vc6 不能用)
先丟執行檔出來,如果你那裡也過得去,
代表可能是你 code 寫得有問題吧..
http://www.FunP.Net/197296
按下button執行後,會一直有 messagebox 跑出來提示下個動作,
所以一開始開 excel 時,請再把 active window 轉回到程式裡面按 messagebox.
下載 demo code 後請告知我, 方便我刪檔;
也請告知我您測試如何, 謝謝。
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
※ 編輯: tropical72 來自: 180.177.76.142 (12/09 02:47)
※ 編輯: tropical72 來自: 180.177.76.142 (12/09 02:52)
※ 編輯: tropical72 來自: 180.177.76.142 (12/09 04:00)
※ 編輯: tropical72 來自: 180.177.76.142 (12/09 04:01)
推 ericinttu:先求有再求好, 所以不會是笨. 12/09 07:47
推 hyc325:坦白說沒有要做到多強大~只是讀入一些檔案照日期分sheet 12/09 18:13
→ hyc325:所以有要新增sheet的部份剛好測試到發現問題 12/09 18:16
→ hyc325:結果有發現有人遇到同樣問題 所以就想直接刪掉處理程序 12/09 18:16
→ hyc325:我寫的部分就是我貼上的部分 我也有開小專案測試 12/09 18:19
→ hyc325:不用多複雜只要新增檔案後新增sheet就無法刪掉處理程序 12/09 18:20
→ hyc325:基本上跟那個codeguru的連結寫的一模一樣 12/09 18:20
→ hyc325:如果他的有錯應該就被指出問題 但那討論串似乎也沒有答案 12/09 18:21
→ hyc325:這部份我會參考您的連結測試 也許是其他小地方的問題 3Q 12/09 18:24
→ hyc325:P.S. demo下載了 測試ok 12/09 18:25
→ tropical72:有空把你的code放在置底文的空間,我debug看看 XD 12/09 20:15
→ tropical72:另外發現,AutoIt似乎可以考慮,裡面調用excel也是用 12/10 00:47
→ tropical72:_ExcelBookAttach 類似方式.你要的功能它都有了, 12/10 00:48
→ tropical72:考量一下吧. 12/10 00:48