Re: [問題] 請問在C#中如何操作Excel檔案

看板C_Sharp (C#)作者 (多變)時間20年前 (2005/06/15 00:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/9 (看更多)
※ 引述《saxophone (碧海藍天￾N  ￾ ￾ )》之銘言: : ※ 引述《mercurial (多變)》之銘言: : : 可以直接用Excel的COM物件 : : 在C#專案內,加入參考時,選COM那一頁,找到 : : Microsoft Excel .... : : 裡面有寫好的function可以直接操作Excel : 請問一下用c#寫成的dll or com,在execel 2000裡面 : 無法用增益集加入(因為無自動化),請問知道要如何 : 使用.net做成的com呢? 要用 System.Runtime.InteropServices 這個namespace去做 在你要公開成COM的物件上加 [ComSourceInterfaces(typeof(ExcelCom.NotifyEvent))] //上行為給Excel用的事件的inferface [ClassInterface(ClassInterfaceType.AutoDual)] public class QuoteCom : IQuoteCom //公開function的interface { public event NotifyDelegate Notify; //給Excel用的事件 } 要被Excel呼叫的function要定義在interface裡面 (上例的interface為IQuoteCom) 若是要加事件給Excel用,用delegate來做,如: public delegate void NotifyDelegate(); 而且一樣要用interface,如下: [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] public interface NotifyEvent { void Notify(); } 物件則要加以下這行 [ComSourceInterfaces(typeof(ExcelCom.NotifyEvent))] 專案的AssemblyInfo.cs內要加key [assembly: AssemblyKeyFile("key檔的路徑")] key檔的產生方法為:用sn.exe? sn -k 檔名 專案要成dll檔,或是exe檔都可 產生TLB檔及註冊: regasm excelcom.dll /tlb:excelcom.tlb tlbexp excelcom.dll /out:excelcom.tlb gacutil /i excelcom.dll 就可以用增益集引用進來了 至於加了那些[]裡面是什麼意思我也不清楚,我只是抄來用:p 詳細情形請參閱.net說明文件或google查查 因為我是在2~3年前有用過,已經忘得差不多了><" 所以如果有錯,請指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.188.92
文章代碼(AID): #12hmOG2r (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #12hmOG2r (C_Sharp)