Excel Xll開發資料


下載地址:http://bbs.jjxj.org/forum.php?mod=viewthread&tid=37943&extra=page%3D1&page=1&

財務應用程序使用Excel加載在發展中的C / C + +,第二版

史蒂夫多爾頓

書號: 978-0-470-02797-4

精裝

 584頁

 2007年9月

威利售價: 120美元

財務應用程序使用Excel加載是在發展中的C / C + +必買任何嚴重的Excel的developer.Excel書是金融建模行業標准,為用戶提供多種方式來擴大自己的加載項功能,包括VBA和C / C + +。這是唯一完整的操作指導,為創造高性能參考書加載項為Excel在C和C + +在金融業的用戶。史蒂夫道爾頓介紹了如何運用Excel的加載項,與整個書列舉了很多例子財務應用。它還包括相對優勢和在VBA與發展的C / C + +加載項為Excel的弱點,並提供所附的CD - ROM的全面代碼,工作簿和示范項目。在Excel 2007中的影響力多線程工作簿的計算,並在大型電網補充,正在開發中充分探討。財務應用程序使用Excel加載在發展中的C / C + +特性:

*在VBA中,C和C + +廣泛的例子代碼,解釋所有的方法,使開發人員可以實現自己的目標。

*范例項目,演示,從開始到結束, Excel的強大的潛力時,加載項可以很容易地發展。

*開發讀者的相對優勢和在VBA與發展的C / C + +加載項為Excel弱點的認識。

*一個CD -數千行代碼的例子,許多工作簿光盤,和一個完整的示例項目。

 

目錄

第二版序言。

序言第1版。

鳴謝為第1版。

鳴謝為第二版。

一介紹。

  1.1排印,並在這本書中使用的代碼約定。

  1.2什么工具和資源來寫的加載項。

   1.2.1 VBA宏和加載項。

   1.2.2的C / C + + DLL的加載項。

   1.2.3的C / C + +的DLL ,可以訪問C API和XLL加載項。

   1.2.4的C / C + + / C#中。 NET中加載項。

  1.3哪個版本的Excel也適用於這本書?

  1.4 Excel的未來: Excel 2007年( 12版) 。

   1.4.1統計調查的主要工作簿進行更改。

   1.4.2 Excel 2007年不包括在此方面的書。

   1.4.3 Excel 2007文件格式。

   1.4.4之間的兼容性Excel 2007和早期版本。

  1.5關於加載項。

  1.6為什么需要這本書?

  1.7這本書是如何組織的。

  1.8適用范圍和局限性。

 2 Excel功能。

  2.1概述Excel的數據組織。

  2.2與無線近距離格A1單元格引用。

  2.3單元格內容。

  2.4工作表數據類型和范圍。

  2.5 Excel中輸入評價。

  2.6數據類型轉換。

   2.6.1一元=運算符。

   2.6.2一元-運算符(否定) 。

   2.6.3數字的二進制算術運算符: + - * / ^ 。

   2.6.4經營者的百分比:% 。

   2.6.5字符串連接運算符:& 。

   2.6.6布爾: =, < , > , < =, > =, < >二元運算符。

   2.6.7轉換單單元格引用。

   2.6.8轉換多單元格區域的引用。

   2.6.9轉換的定義范圍名稱。

   2.6.10顯式類型轉換函數:不適用() ,T(下),文本(), ()的值。

   2.6.11工作表函數的參數類型轉換。

   2.6.12操作評價之上。

  2.7字符串。

   2.7.1長度的前綴與空結束的字符串。

   2.7.2字節字符串與Unicode字符串。

   2.7.3非托管與管理的字符串。

   2.7.4在Excel中使用摘要字符串類型。

   2.7.5一個字符串類型轉換到另一個。

   2.7.6混合長度計數空終止字符串。

  2.8 Excel的術語:主動和電流。

  2.9命令與在Excel的功能。

  2.10工作表函數類型。

   2.10.1功能的目的和返回類型。

   2.10.2數組公式-的Ctrl移輸入按鍵。

   2.9.3必修,可選的參數和可變參數失蹤名單。

  2.11復雜的功能和命令。

   2.11.1數據表。

   2.11.2目標尋找和規划求解加載項。

  2.12 Excel中重新計算邏輯。

   2.12.1標志重新計算家屬。

   2.12.2觸發功能,被稱為由Excel -觸發參數。

   2.12.3揮發功能。

   2.12.4交叉表的依賴- Excel中97/2000與2002和更高版本。

   2.12.5用戶定義函數( VB的宏)和插件功能。

   2.12.6數據表重新計算。

   2.12.7條件格式。

   2.12.8論證評價:如果( )或( )和( ),選擇()....

   2.12.9編程控制Excel重新計算。

   2.12.10強制Excel以重新計算工作簿或其他對象。

   2.12.11使用函數名定義。

   2.12.12多線程重新計算。

  2.13加載項管理器。

  2.14裝卸加載項。

   2.14.1附加信息。

  2.15粘貼函數對話框。

   2.15.1函數類別。

   2.15.2函數名,參數列表和說明。

   2.13.3論證建設對話框。

  2.16良好的電子表格的設計和實踐。

   2.16.1文件名,標題和表的名稱,版本和修訂歷史記錄。

   2.16.2幻數。

   2.16.3數據組織和設計指引。

   2.16.4公式重復。

   2.16.5高效查找:匹配(), INDEX()和偏移( )與VLOOKUP會() 。

  2.17具有非常大的電子表格問題。

  2.18結論。

 3 UsingVBA 。

  3.1打開VB編輯器。

  3.2使用VBA來創建新的命令。

   3.2.1記錄的VBA宏命令。

  3.3分配的VBA宏命令來控制在一個工作表對象。

  3.4利用VBA陷阱Excel事件。

  3.5使用VBA來創建新的功能。

   3.5.1功能范圍。

   3.5.2 VBA函數聲明為volatile 。

  3.6以作為對外部DLL的加載項界面的VBA 。

   3.6.1在VB聲明DLL函數。

   3.6.2呼叫按引用與調用的值。

   3.6.3轉換參數和返回數據之間的VBA和C / C + +類型。

   3.6.4 VBA的數據類型和范圍。

   3.6.5 VB中/的OLE貨幣類型。

   3.6.6 VB中/的OLE的BSTR字符串。

   3.6.7字符串傳遞到C / C + +函數從VBA 。

   3.6.8字符串返回到VBA從一個DLL。

   3.6.9 Variant數據類型。

   3.6.10變用VBA支持的類型。

   3.6.11變異類型, Excel可以傳遞給VBA函數。

   3.6.12用戶定義的數據類型在VB 。

   3.6.13 VB的對象的數據類型。

   3.6.14調用xlm工作職能,從VBA命令: Application.ExecuteExcel4Macro () 。

   3.6.15調用用戶定義的函數和VBA的命令: Application.Run () 。

  3.7 Excel的范圍, VB的陣列, SAFEARRAY的,數組變量。

   3.7.1聲明VB的陣列,並且通過他們返回到Excel 。

   3.7.2傳遞數組和范圍,以從Excel的VBA到C / C + +。

   3.7.3變量和數組轉換從C / C + +類型。

   3.7.4 VB中傳遞數組和從C / C + +。

  3.8命令與在VBA函數。

  3.9 VB中創建的加載項( xla文件) 。

與3.10的VBA的C / C + +:一些基本問題。

 4創建一個32位Windows ( Win32 DLL中使用Visual C )+ + 6.0或Visual Studio.NET中。

  4.1 Windows庫的基礎知識。

  4.2 DLL的基本知識。

  4.3 DLL的內存和多個DLL的實例。

  4.4多線程。

  4.5編譯的函數名稱。

   4.5.1名稱修飾。

   4.5.2外部" C"的聲明。

  4.6函數的調用約定: _cdecl , _stdcall , _fastcall 。

  4.7 DLL的導出函數名。

   4.7.1 _declspec ( dllexport )關鍵字。

   4.7.2定義( *. I50)的文件。

   4.7.3使用連接器預處理器指令。

  4.8你需要開始開發加載在C / C + +程式。

  4.9創建一個DLL使用Visual C + + 6.0。

   4.9.1創建空的DLL項目。

   4.9.2添加代碼到項目中。

   4.9.3編譯和調試的DLL。

  4.10創建一個DLL使用Visual C + +。 NET 2003中。

   4.10.1創建空的DLL項目。

   4.10.2代碼添加到項目中。

   4.10.3編譯和調試的DLL。

  4.11從VB訪問DLL函數。

  4.12從Excel中訪問DLL函數。

五成XLLs的DLL中談到:加載項管理器接口。

  5.1 Xlcall32庫和C API函數。

  5.2什么是經理在附加怎么辦?

   5.2.1加載和卸載安裝的加載項。

   5.2.2有效和無效的加載項。

   5.2.3刪除的加載項和加載滅活加載項。

  5.3創建一個XLL :該xlAuto接口功能。

  5.4什么時候和以什么順序做Excel中調用XLL接口功能?

所謂5.5 XLL函數的加載項管理器和Excel 。

   5.5.1 xlAutoOpen 。

   5.5.2 xlAutoClose 。

   5.5.3 xlAutoAdd 。

   5.5.4 xlAutoRemove 。

   5.5.5 xlAddInManagerInfo ( xlAddInManagerInfo12 ) 。

   5.5.6 xlAutoRegister ( xlAutoRegister12 ) 。

   5.5.7 xlAutoFree ( xlAutoFree12 ) 。

 6 Excel和傳遞數據的DLL 。

  6.1處理Excel的內部數據結構: C或C + +?

  6.2 Excel如何交流工作表數據的DLL加載功能。

   6.2.1本機的C / C + +數據類型。

   6.2.2 Excel的浮點陣列結構: xl4_array , xl12_array 。

   6.2.3 xloper/xloper12結構。

   6.2.4 xlref/xlref12結構。

   6.2.5 xlmref/xlmref12結構。

   6.2.6 oper/oper12結構。

  6.3定義常數xlopers/xloper12s 。

  6.4為xloper/xloper12一個C + +類包裝- cpp_xloper 。

  6.5 xloper/xloper12s間的轉換和C / C + +數據類型。

  6.6類型間的轉換xloper/xloper12 。

  6.7轉換之間xlopers和變種。

  6.8轉換之間xlopers和xloper12s 。

  6.9詳細討論xloper類型。

   6.9.1釋放xloper內存。

   6.9.2表(浮點)的數量: xltypeNum 。

   6.9.3長度計數字符串: xltypeStr 。

   6.9.4 Excel中布爾: xltypeBool 。

   6.9.5表誤差值: xltypeErr 。

   6.9.6 Excel的內部整數: xltypeInt 。

   6.9.7陣列(混合型) : xltypeMulti 。

   6.9.8工作表單元格/范圍參考: xltypeRef和xltypeSRef 。

   6.9.9空工作表單元格: xltypeNil 。

   6.9.10二進制工作表名稱: xltypeBigData 。

  6.10起始xloper/xloper12s 。

  6.11缺少參數。

 7內存管理。

  7.1 Excel的堆棧空間的限制。

  7.2靜態加載在內存和多個Excel實例。

  7.3使用Excel來釋放內存由Excel分配。

   7.3.1釋放xloper內存在DLL調用。

   7.3.2釋放Excel的分配xloper內存由DLL函數返回。

   7.3.3隱藏在一個C + +類xloper內存管理。

  7.4使用Excel中調用該DLL回自由的DLL分配的內存。

  7.5通過修改參數的地方選舉中的數據。

  7.6制作外接功能線程安全的。

   7.6.1多線程重新計算(地鐵)在Excel 2007( 12版) 。

   7.6.2哪些Excel的內置函數是線程安全的。

   7.6.3分配線程本地內存。

   7.6.4 Excel的調用的排序,以xlAutoFree在多線程系統。

   7.6.5使用線程之間共享內存的關鍵部分。

 8訪問Excel功能使用C API 。

  8.1在Excel 4宏語言(XLM ) 。

   8.1.1命令,工作表函數和宏工作表函數。

   8.1.2命令的可選顯示對話-的xlPrompt位。

   8.1.3訪問xlm工作職能從工作表使用定義的名稱。

  8.2 Excel4 (), Excel12 () C API函數。

   8.2.1介紹。

   8.2.2 Excel4 (), Excel12 ()返回值。

   8.2.3在DLL中調用Excel中使用Excel4 (), Excel12 ( )工作表函數。

   8.2.4調用從DLL使用Excel4 (), Excel12 ()宏工作表函數。

   8.2.5調用從DLL使用Excel4 ()/ Excel12 ()宏工作表命令。

  8.3 Excel4v ()/ Excel12v () C API函數。

  8.4什么的C API函數可以調用該DLL時?

  8.5包裝的C的API。

  8.6注冊和未注冊的DLL( XLL )功能。

   8.6.1 xlfRegister功能。

   8.6.2指定哪一類的功能,應根據上市。

   8.6.3指定參數和返回類型。

   8.6.4給函數宏工作表函數的權限。

   8.3.4指定職能波動。

   8.6.6指定函數作為線程安全的( Excel 2007中使用) 。

   8.6.7通過修改參數返回值的地方。

   8.6.8在粘貼函數對話框(函數向導) 。

   8.6.9函數參數xlfRegister幫助。

   8.6.10 help參數參數xlfRegister 。

   8.6.11管理注冊所需的數據導出功能。

   8.6.12使用登記職能,為Excel 2007和早期版本的雙接口。

   8.6.13一個基於類的方法來管理登記資料。

   8.6.14獲取和使用功能的注冊編號。

   8.6.15取消注冊DLL函數。

  8.7注冊和未注冊的DLL( XLL )命令。

   8.7.1訪問XLL命令。

   8.7.2打破執行一個XLL命令。

  8.8函數定義的C API只。

   8.8.1釋放Excel的分配的內存在DLL : xlFree 。

   8.8.2獲取可用堆棧空間: xlStack 。

   8.8.3轉換到另一種類型之一xloper/xloper12 : xlCoerce 。

   8.8.4設置單元格的值從命令: xlSet 。

技巧8.4獲取一個命名表的內部ID : xlSheetId 。

   8.8.6獲得一個從它的內部ID表名稱: xlSheetNm 。

   8.8.7屈服處理器用戶休息時間和檢查: xlAbort 。

   8.8.8使用Excel的實例句柄: xlGetInst 。

   8.8.9獲取處理頂層Excel窗口: xlGetHwnd 。

   8.8.10獲取文件的路徑和DLL的名稱: xlGetName 。

  8.9工作與二進制名稱。

   8.9.1的xltypeBigData xloper 。

   8.9.2基本操作與二進制名稱。

   8.9.3創建,刪除和覆蓋二進制名稱。

   8.9.4名稱檢索二進制數據。

   8.9.5示例工作表函數。

  8.10工作區的信息命令和功能。

   8.10.1設置應用程序標題: xlfAppTitle 。

   8.10.2設置文檔窗口標題: xlfWindowTitle 。

   8.10.3使用一到活動單元格引用: xlfActiveCell 。

   8.10.4獲得一個列出所有打開的Excel文件: xlfDocuments 。

   8.10.5信息單元格或單元格區域: xlfGetCell 。

   8.10.6表或工作簿的信息: xlfGetDocument 。

   8.10.7獲取一個單元格公式: xlfGetFormula 。

   8.10.8使用一個細胞的評論: xlfGetNote 。

   8.10.9信息窗口: xlfGetWindow 。

   8.10.10信息有關工作簿: xlfGetWorkbook 。

   8.10.11信息有關的工作區: xlfGetWorkspace 。

   8.10.12信息對選定的范圍或對象: xlfSelection 。

   8.10.13使用名稱打開Excel窗口: xlfWindows 。

   8.10.14轉換范圍參考: xlfFormulaConvert 。

   8.10.15將文本轉換為一個參考: xlfTextref 。

   8.10.16轉換,以案文中提到: xlfReftext 。

   8.10.17信息調用單元格或對象: xlfCaller 。

   8.10.18信息調用函數的類型。

  8.11工作與Excel的名稱。

   8.11.1指定表名稱和名稱的范圍。

   8.11.2基本操作與Excel的名稱。

   8.11.3定義工作表上的一個名稱: xlcDefineName 。

   8.11.4定義和刪除該DLL的名稱: xlfSetName 。

   8.11.5刪除工作表名稱: xlcDeleteName 。

   8.11.6獲取一個命名范圍的定義: xlfGetName 。

   8.11.7獲取一個單元格區域定義名稱: xlfGetDef 。

   8.11.8獲取列表命名范圍: xlfNames 。

  8.12工作與Excel菜單。

   8.12.1菜單欄和身分證號碼,菜單和命令說明符。

   8.12.2速成(上下文)菜單組。

   8.12.3獲取信息的菜單欄: xlfGetBar 。

   8.12.4創建一個新的菜單欄或恢復默認欄: xlfAddBar 。

   8.12.5添加菜單或子菜單: xlfAddMenu 。

   8.12.6添加到菜單命令: xlfAddCommand 。

   8.12.7顯示一個自定義菜單欄: xlfShowBar 。

   8.12.8添加/刪除一個菜單命令檢查標志: xlfCheckCommand 。

   8.12.9啟用/禁用自定義命令或菜單: xlfEnableCommand 。

   8.12.10更改菜單命令的名稱: xlfRenameCommand 。

   8.12.11刪除從菜單命令: xlfDeleteCommand 。

   8.12.12刪除自定義菜單: xlfDeleteMenu 。

   8.12.13刪除自定義菜單欄: xlfDeleteBar 。

  8.13工作的工具欄。

   8.13.1獲取信息的工具欄: xlfGetToolbar 。

   8.13.2獲取信息的工具欄上的一個按鈕: xlfGetTool 。

   8.13.3創建一個新的工具欄: xlfAddToolbar 。

   8.13.4按鈕添加到工具欄: xlcAddTool 。

   8.13.5分配/取消對工具命令: xlcAssignToTool 。

   8.13.6啟用/禁用的工具欄上的一個按鈕: xlfEnableTool 。

   8.13.7移動/復制工具欄之間的命令: xlcMoveTool 。

   8.13.8顯示,作為壓: xlfPressTool工具欄按鈕。

   8.13.9顯示或隱藏工具欄: xlcShowToolbar 。

   8.13.10重置工具欄內置: xlfResetToolbar 。

   8.13.11刪除從工具欄的按鈕: xlcDeleteTool 。

   8.13.12刪除自定義工具欄: xlfDeleteToolbar 。

  8.14工作的自定義對話框。

   8.14.1顯示一個警告對話框: xlcAlert 。

   8.14.2顯示一個自定義對話框: xlfDialogBox 。

   8.14.3限制用戶輸入到對話框: xlcDisableInput 。

  8.15事件捕獲與C的API。

   8.15.1俘獲一個DDE數據更新事件: xlcOnData 。

   8.15.2捕獲一個雙擊事件: xlcOnDoubleclick 。

   8.15.3俘獲工作表數據錄入事件: xlcOnEntry 。

   8.15.4捕獲鍵盤事件: xlcOnKey 。

   8.15.5俘獲重新計算事件: xlcOnRecalc 。

   8.15.6捕獲一個窗口選擇事件: xlcOnWindow 。

   8.15.7誘捕系統時鍾事件: xlcOnTime 。

  8.16雜項命令和功能。

   8.16.1命令執行過程中禁用屏幕更新: xlcEcho 。

   8.16.2顯示文字在狀態欄: xlcMessage 。

   8.16.3評價單元格的公式: xlfEvaluate 。

   8.16.4調用用戶定義函數從一個XLL或DLL : xlUDF 。

   8.16.5調用用戶定義的命令從一個XLL或DLL : xlcRun 。

  8.17 XLCallVer () C API函數。

 9雜項專題。

  9.1定時在VBA和C / C + +函數的執行。

  9.2 VBA的,相對性能的C / C + +:試驗和成果。

   9.2.1結論測試結果。

  9.3相對性能的C API與VBA的要求從工作表單元格。

  9.4檢測時,工作表函數是從Excel對話框調用。

   9.4.1檢測時,工作表函數是從粘貼函數對話框(函數向導)調用。

   9.4.2檢測時,工作表函數是從搜索和替換對話框調用。

   9.4.3檢測時,工作表函數是無論從搜索和替換或粘貼函數對話框調用。

  9.5訪問Excel功能使用COM / OLE自動化使用C + +。

   9.5.1起始和未初始化的COM 。

   9.5.2使用Excel進行重新計算工作表使用COM 。

   9.5.3調用用戶定義的命令使用COM 。

   9.5.4調用用戶定義函數使用COM 。

   9.5.5使用COM調用xlm工作職能。

   9.5.6使用COM調用工作表函數。

  9.6大型數據結構保持在DLL 。

  9.7一個C + + Excel的名稱的類的例子, xlName 。

  9.8保持跟蹤一個DLL函數調用細胞。

   9.8.1生成一個唯一的名稱。

   9.8.2獲取的調用細胞內部名稱。

   9.8.3命名調用細胞。

   9.8.4內部XLL名家務。

  9.9引用傳遞到Excel工作表函數。

   9.9.1數據的引用。

   9.9.2函數引用。

  9.10多任務,在DLL多線程和異步調用。

   9.10.1設置定時到DLL命令調用: xlcOnTime 。

   9.10.2啟動和停止從一個DLL線程。

   9.10.3調用從DLL創建的線程的C的API。

  9.11管理階層的背景和戰略任務。

   9.11.1要求。

   9.11.2之間的溝通Excel和一個后台線程。

   9.11.3所需的軟件組件。

   9.11.4限定工作表上的功能。

   9.11.5籌備工作清單。

   9.11.6創建,刪除,暫停,恢復該線程。

   9.11.7任務處理循環。

   9.11.8任務界面和主要功能。

   9.11.9的投票命令。

   9.11.10配置和控制后台線程。

   9.11.11其他可能的后台線程應用程序和策略。

  9.12如何崩潰Excel中。

  9.13附加設計。

   9.13.1分離的核心功能代碼界面代碼。

   9.13.2控制錯誤傳播。

   9.13.3制作外接行為Excel版本敏感和向后兼容。

   9.13.4版本相關的工作簿重新計算的結果。

  9.14優化。

   9.14.1低級別的代碼優化。

   9.14.2 VBA代碼優化。

   9.14.3 Excel計算優化。

 10例加載項和財務應用。

  10.1字符串函數。

  10.2統計職能。

   10.2.1偽隨機數生成。

   10.2.2從生成正態分布隨機樣本。

   10.2.3生成相關隨機樣本。

   10.2.4擬隨機數序列。

   10.2.5正態分布。

  10.3矩陣函數-特征值和特征向量。

  10.4插值。

   10.4.1線性插值。

   10.4.2雙線性插值。

   10.4.3三次樣條。

  10.5查找和搜索功能。

 1060金融市場日期的功能。

  10.7建立和閱讀折扣曲線。

  10.8樹木和建築物格。

  10.9蒙特卡羅模擬。

   10.9.1使用Excel和VBA只。

   10.9.2使用Excel和C / C + +只。

   10.9.3使用工作表函數只。

  10.10校准。

  10.11不育系衍生定價。

  10.12 SABR隨機波動模型。

  10.13善用衍生工具SABR合作醫療的實施。

附錄1。光盤的內容。

 

作者:

史蒂夫道爾頓是目前主管在GFI的利率在倫敦的選擇。史蒂夫已經在瑪麗學院,倫敦大學和超過20年的利率衍生工具的經驗和IT數學學位。他開創了在套利和衍生工具定價的80年代中期的實時電子表格的使用。他創立於20世紀80年代末,是一家專業的軟件和顧問在這一領域和在Excel的要求苛刻的實時應用Eigensys有限公司。

 

 

再加個網站

Calling into Excel from the DLL or XLL

http://msdn.microsoft.com/en-us/library/bb687851.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM