下載地址: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