關(guān)于我們
書單推薦
新書推薦
|
對比VBA學Python:高效實現(xiàn)數(shù)據(jù)處理自動化 讀者對象:Excel VBA用戶并希望快速掌握Python,或者懂Python希望快速學習Excel VBA的職場辦公人員、數(shù)據(jù)分析人員、大學生、科研人員和程序員等。
本書旨在幫助讀者以最快的速度,系統(tǒng)地從Excel VBA腳本編程轉(zhuǎn)入Python腳本編程,或者從Python腳本編程轉(zhuǎn)入VBA腳本編程,或者同時學會兩種腳本編程方法。本書使用Excel VBA和Python雙語言對照的方式,能幫助VBA用戶快速掌握Python腳本編程,并使用雙語實現(xiàn)Excel腳本編程和數(shù)據(jù)處理自動化。本書包括對象模型、界面設(shè)計、文件操作、Excel函數(shù)、Excel圖形、Excel圖表、Excel數(shù)據(jù)透視表、正則表達式、統(tǒng)計分析和混合編程等內(nèi)容。關(guān)于Python方面,本書詳細地介紹了xlwings包的使用方法。本書適合任何對Excel腳本開發(fā)感興趣的讀者閱讀,如有編程需求的職場辦公人員、數(shù)據(jù)分析人員、大學生、科研人員和程序員等。
童大謙,具有15年以上VB、VBA、.NET開發(fā)經(jīng)驗,開發(fā)了多個數(shù)學、數(shù)據(jù)分析與可視化方面的軟件,以及與科研院所合作開發(fā)了若干個軟件系統(tǒng)。對Python、MATLAB、SPSS、R等數(shù)據(jù)分析軟件非常熟悉,出版多本相關(guān)圖書。曾在高校執(zhí)教,CSDN高級講師,全網(wǎng)學員目前近20萬人。
第1章 Excel編程與Python編程概述 1
1.1 關(guān)于Excel腳本編程 1 1.1.1 為什么要進行Excel腳本編程 1 1.1.2 選擇VBA還是選擇Python 2 1.2 使用Excel VBA編寫程序 2 1.2.1 Excel VBA的編程環(huán)境 2 1.2.2 編寫Excel VBA程序 4 1.3 使用Python編寫程序 5 1.3.1 Python的特點 5 1.3.2 下載并安裝Python 5 1.3.3 Python的編程環(huán)境 6 1.3.4 編寫Python程序 7 1.4 編程規(guī)范 9 1.4.1 代碼注釋 9 1.4.2 代碼續(xù)行 10 1.4.3 代碼縮進 10 第2章 常量和變量 12 2.1 常量 12 2.1.1 Excel VBA常量 12 2.1.2 Python常量 13 2.2 變量及其操作 14 2.2.1 變量的命名 14 2.2.2 變量的聲明 15 2.2.3 變量的賦值 16 2.2.4 鏈式賦值 18 2.2.5 系列解包賦值 18 2.2.6 交換變量的值 19 2.2.7 變量的清空或刪除 19 2.2.8 Python對象的三要素 20 2.3 變量的數(shù)據(jù)類型 21 2.3.1 基本的數(shù)據(jù)類型 21 2.3.2 數(shù)據(jù)類型轉(zhuǎn)換 23 2.4 數(shù)字 25 2.4.1 整型數(shù)字 25 2.4.2 浮點型數(shù)字 26 2.4.3 復數(shù) 27 2.4.4 類型轉(zhuǎn)換的有關(guān)問題 28 2.4.5 Python的整數(shù)緩存機制 29 第3章 表達式 30 3.1 算術(shù)運算符 30 3.2 關(guān)系運算符 32 3.3 邏輯運算符 34 3.4 賦值運算符和算術(shù)賦值運算符 36 3.5 成員運算符 36 3.6 身份運算符 38 3.7 運算符的優(yōu)先級 38 第4章 初識Excel對象模型 42 4.1 Excel對象模型 42 4.1.1 對象及相關(guān)概念 42 4.1.2 Excel對象及其層次結(jié)構(gòu) 43 4.2 操作Excel對象模型的一般過程 44 4.2.1 使用Excel VBA操作Excel對象模型的一般過程 44 4.2.2 與Excel相關(guān)的Python包 45 4.2.3 xlwings包及其安裝 46 4.2.4 使用xlwings包操作Excel對象模型的一般過程 47 4.3 與Excel對象模型有關(guān)的常用操作 49 4.3.1 獲取文件的當前路徑 49 4.3.2 對象的引用 50 4.3.3 獲取末行行號:給參數(shù)指定常數(shù)值 51 4.3.4 擴展單元格區(qū)域 52 4.3.5 修改單元格區(qū)域的屬性 53 第5章 流程控制 54 5.1 判斷結(jié)構(gòu) 54 5.1.1 單分支判斷結(jié)構(gòu) 54 5.1.2 二分支判斷結(jié)構(gòu) 55 5.1.3 多分支判斷結(jié)構(gòu) 56 5.1.4 有嵌套的判斷結(jié)構(gòu) 58 5.1.5 三元操作表達式 60 5.1.6 判斷結(jié)構(gòu)示例:判斷是否為閏年 62 5.2 循環(huán)結(jié)構(gòu):for循環(huán) 64 5.2.1 for循環(huán) 64 5.2.2 嵌套for循環(huán) 66 5.2.3 Python中的for…else的用法 67 5.2.4 for循環(huán)示例:求給定數(shù)據(jù)的最大值和最小值 68 5.3 循環(huán)結(jié)構(gòu):while循環(huán) 69 5.3.1 簡單while循環(huán) 70 5.3.2 Python中有分支的while循環(huán) 72 5.3.3 嵌套while循環(huán) 72 5.3.4 while循環(huán)示例:求給定數(shù)據(jù)的最大值和最小值 73 5.4 Excel VBA的其他結(jié)構(gòu) 75 5.4.1 For Each…Next循環(huán)結(jié)構(gòu) 75 5.4.2 Do循環(huán)結(jié)構(gòu) 76 5.5 其他語句 77 5.5.1 Excel VBA中的其他語句 77 5.5.2 Python中的其他語句 78 第6章 字符串 80 6.1 創(chuàng)建字符串 80 6.1.1 直接創(chuàng)建字符串 80 6.1.2 通過轉(zhuǎn)換類型創(chuàng)建字符串 83 6.1.3 字符串的長度 84 6.1.4 轉(zhuǎn)義字符 84 6.2 字符串的索引和切片 86 6.2.1 字符串的索引 86 6.2.2 遍歷字符串 87 6.2.3 字符串的切片 88 6.2.4 字符串的索引和切片示例:使用身份證號求年齡 89 6.3 字符串的格式化輸出 91 6.3.1 實現(xiàn)字符串的格式化輸出 91 6.3.2 字符串的格式化輸出示例:數(shù)據(jù)保留4位小數(shù) 95 6.4 字符串的大小寫 96 6.4.1 設(shè)置字符串的大小寫 96 6.4.2 設(shè)置字符串的大小寫示例:列數(shù)據(jù)統(tǒng)一大小寫 98 6.5 字符串的分割和連接 99 6.5.1 字符串的分割 100 6.5.2 字符串的分割示例:分割物資規(guī)格 100 6.5.3 字符串的連接 102 6.5.4 字符串的連接示例:合并學生個人信息 104 6.6 字符串的查找和替換 105 6.6.1 字符串的查找 106 6.6.2 字符串的替換 107 6.6.3 字符串的查找和替換示例:提取省、市、縣 108 6.6.4 字符串的查找和替換示例:統(tǒng)一列數(shù)據(jù)的單位 111 6.7 字符串的比較 113 6.7.1 使用關(guān)系運算符進行比較 113 6.7.2 使用函數(shù)進行比較 114 6.7.3 字符串的比較示例:找老鄉(xiāng) 116 6.8 刪除字符串兩端的空格 119 6.9 Python中字符串的緩存機制 120 第7章 數(shù)組 122 7.1 Excel VBA中的數(shù)組 122 7.1.1 靜態(tài)數(shù)組 122 7.1.2 常量數(shù)組 124 7.1.3 動態(tài)數(shù)組 125 7.1.4 數(shù)組元素的增、刪、改 126 7.1.5 數(shù)組元素的去重 129 7.1.6 數(shù)組元素的排序 130 7.1.7 數(shù)組元素的計算 131 7.1.8 數(shù)組元素的拆分和合并 132 7.1.9 數(shù)組元素的過濾 133 7.1.10 創(chuàng)建二維數(shù)組 133 7.1.11 改變二維數(shù)組的大小 134 7.1.12 Excel工作表與數(shù)組交換數(shù)據(jù) 135 7.1.13 數(shù)組示例:給定數(shù)據(jù)的簡單統(tǒng)計 142 7.1.14 數(shù)組示例:突出顯示給定數(shù)據(jù)的重復值 143 7.1.15 數(shù)組示例:求大于某數(shù)的最小值 144 7.1.16 數(shù)組示例:創(chuàng)建楊輝三角 146 7.2 Python中的數(shù)組:列表 147 7.2.1 創(chuàng)建列表 147 7.2.2 索引和切片 151 7.2.3 添加列表元素 152 7.2.4 插入列表元素 153 7.2.5 刪除列表元素 154 7.2.6 列表元素的去重 154 7.2.7 列表元素的排序 155 7.2.8 列表元素的計算 155 7.2.9 列表的拆分和合并 156 7.2.10 列表的過濾 156 7.2.11 二維列表 157 7.2.12 Excel工作表與列表交換數(shù)據(jù) 158 7.2.13 數(shù)組示例:給定數(shù)據(jù)的簡單統(tǒng)計 160 7.2.14 數(shù)組示例:突出顯示給定數(shù)據(jù)的重復值 161 7.2.15 數(shù)組示例:求大于某數(shù)的最小值 162 7.2.16 數(shù)組示例:創(chuàng)建楊輝三角 163 7.3 Python中的數(shù)組:元組 164 7.3.1 元組的創(chuàng)建和刪除 164 7.3.2 元組的索引和切片 165 7.3.3 基本運算和操作 166 7.4 Python中的數(shù)組:NumPy數(shù)組 167 7.4.1 NumPy包及其安裝 167 7.4.2 創(chuàng)建NumPy數(shù)組 168 7.4.3 NumPy數(shù)組的索引和切片 170 7.4.4 NumPy數(shù)組的計算 171 7.4.5 Excel工作表與NumPy數(shù)組交換數(shù)據(jù) 174 7.5 Python中帶索引的數(shù)組:Series和DataFrame 175 7.5.1 pandas包及其安裝 175 7.5.2 pandas Series 176 7.5.3 pandas DataFrame 180 7.5.4 Excel與pandas交換數(shù)據(jù) 187 第8章 字典 191 8.1 字典的創(chuàng)建 191 8.1.1 創(chuàng)建字典對象 191 8.1.2 Excel VBA中后期綁定與前期綁定的比較 193 8.1.3 Python中更多創(chuàng)建字典的方法 195 8.2 字典元素的索引 196 8.2.1 獲取鍵和值 196 8.2.2 鍵在字典中是否存在 199 8.3 字典元素的增、刪、改 200 8.3.1 增加字典元素 200 8.3.2 修改鍵和值 201 8.3.3 刪除字典元素 202 8.4 字典數(shù)據(jù)的讀/寫 202 8.4.1 字典數(shù)據(jù)的格式化輸出 202 8.4.2 Excel工作表與字典之間的數(shù)據(jù)讀/寫 204 8.5 字典應用示例 207 8.5.1 應用示例1:匯總多行數(shù)據(jù)中唯一值出現(xiàn)的次數(shù) 207 8.5.2 應用示例2:匯總球員獎項 209 8.5.3 應用示例3:匯總研究課題的子課題 212 第9章 集合 215 9.1 集合的相關(guān)概念 215 9.1.1 集合的概念 215 9.1.2 集合運算 215 9.2 集合的創(chuàng)建和修改 216 9.2.1 創(chuàng)建集合 216 9.2.2 集合元素的添加和刪除 217 9.3 集合運算 218 9.3.1 交集運算 218 9.3.2 并集運算 220 9.3.3 差集運算 221 9.3.4 對稱差集運算 223 9.3.5 子集和超集運算 225 9.4 集合應用示例 227 9.4.1 應用示例1:統(tǒng)計參加興趣班的所有學生 227 9.4.2 應用示例2:跨表去重 229 9.4.3 應用示例3:找出報和沒有報兩個興趣班的學生 232 第10章 函數(shù) 235 10.1 內(nèi)部函數(shù) 235 10.1.1 常見的內(nèi)部函數(shù) 235 10.1.2 Python標準模塊函數(shù) 238 10.2 第三方庫函數(shù) 241 10.3 自定義函數(shù) 243 10.3.1 函數(shù)的定義和調(diào)用 243 10.3.2 有多個返回值的情況 246 10.3.3 可選參數(shù)和默認參數(shù) 248 10.3.4 可變參數(shù) 250 10.3.5 參數(shù)為字典 251 10.3.6 傳值還是傳址 253 10.4 變量的作用范圍和生存期 254 10.4.1 變量的作用范圍 255 10.4.2 變量的生存期和Excel VBA中的靜態(tài)變量 256 10.5 Python中的匿名函數(shù) 257 10.6 函數(shù)應用示例 258 10.6.1 應用示例1:計算圓環(huán)的面積 258 10.6.2 應用示例2:遞歸計算階乘 260 10.6.3 應用示例3:刪除字符串中的數(shù)字 262 第11章 模塊與工程 265 11.1 模塊 265 11.1.1 內(nèi)置模塊和第三方模塊 265 11.1.2 函數(shù)式自定義模塊 265 11.1.3 腳本式自定義模塊 267 11.1.4 類模塊 267 11.1.5 窗體模塊 267 11.2 工程 268 11.2.1 使用內(nèi)置模塊和第三方模塊 268 11.2.2 使用其他自定義模塊 269 第12章 調(diào)試與異常處理 271 12.1 Excel VBA中的調(diào)試 271 12.1.1 輸入錯誤的調(diào)試 271 12.1.2 運行時錯誤的調(diào)試 272 12.1.3 邏輯錯誤的調(diào)試 272 12.2 Python中的異常處理 274 12.2.1 常見異常 274 12.2.2 異常捕獲:單分支的情況 275 12.2.3 異常捕獲:多分支的情況 276 12.2.4 異常捕獲:try…except…else… 277 12.2.5 異常捕獲:try…finally… 277 第13章 深入Excel對象模型 279 13.1 Excel對象模型概述 279 13.1.1 關(guān)于Excel對象模型的更多內(nèi)容 279 13.1.2 Python xlwings的兩種編程方式 279 13.2 Excel應用對象 280 13.2.1 Application對象 280 13.2.2 位置、大小、標題、可見性和狀態(tài)屬性 282 13.2.3 其他常用屬性 283 13.3 工作簿對象 285 13.3.1 創(chuàng)建和打開工作簿 285 13.3.2 引用、激活、保存和關(guān)閉工作簿 287 13.4 工作表對象 290 13.4.1 相關(guān)對象 290 13.4.2 創(chuàng)建和引用工作表 291 13.4.3 激活、復制、移動和刪除工作表 295 13.4.4 隱藏和顯示工作表 297 13.4.5 選擇行和列 299 13.4.6 復制/剪切行和列 301 13.4.7 插入行和列 303 13.4.8 刪除行和列 306 13.4.9 設(shè)置行高和列寬 307 13.5 單元格對象 309 13.5.1 引用單元格 309 13.5.2 引用整行和整列 312 13.5.3 引用區(qū)域 314 13.5.4 引用所有單元格、特殊區(qū)域、區(qū)域的集合 318 13.5.5 擴展引用當前工作表中的單元格區(qū)域 321 13.5.6 引用末行或末列 323 13.5.7 引用特殊的單元格 324 13.5.8 區(qū)域的行數(shù)、列數(shù)、左上角、右下角、形狀、大小 326 13.5.9 插入單元格或區(qū)域 327 13.5.10 單元格的選擇和清除 329 13.5.11 單元格的復制、粘貼、剪切和刪除 331 13.5.12 單元格的名稱、批注和字體設(shè)置 335 13.5.13 單元格的對齊方式、背景色和邊框 339 13.6 Excel對象模型應用示例 341 13.6.1 應用示例1:批量新建和刪除工作表 341 13.6.2 應用示例2:按工作表的某列分類并拆分為多個工作表 343 13.6.3 應用示例3:將多個工作表分別保存為工作簿 346 13.6.4 應用示例4:將多個工作表合并為一個工作表 347 第14章 界面設(shè)計 350 14.1 窗體 350 14.1.1 創(chuàng)建窗體 350 14.1.2 窗體的主要屬性、方法和事件 351 14.2 控件 354 14.2.1 創(chuàng)建控件的方法 354 14.2.2 控件的共有屬性 355 14.2.3 控件的布局 357 14.2.4 標簽控件 358 14.2.5 文本框控件 360 14.2.6 命令按鈕控件 363 14.2.7 單選按鈕控件 365 14.2.8 復選框控件 366 14.2.9 列表框控件 369 14.2.10 組合框控件 372 14.2.11 旋轉(zhuǎn)按鈕控件 374 14.2.12 方框控件 375 14.3 界面設(shè)計示例 376 第15章 文件操作 383 15.1 文本文件的讀/寫 383 15.1.1 創(chuàng)建文本文件并寫入數(shù)據(jù) 383 15.1.2 讀取文本文件 386 15.1.3 向文本文件追加數(shù)據(jù) 388 15.2 二進制文件的讀/寫 390 15.2.1 創(chuàng)建二進制文件并寫入數(shù)據(jù) 390 15.2.2 讀取二進制文件 392 第16章 Excel工作表函數(shù) 394 16.1 Excel工作表函數(shù)概述 394 16.1.1 Excel工作表函數(shù)簡介 394 16.1.2 在Excel中使用工作表函數(shù) 394 16.1.3 在Excel VBA中使用工作表函數(shù) 396 16.1.4 在Python中使用工作表函數(shù) 397 16.2 常用的Excel工作表函數(shù) 399 16.2.1 SUM函數(shù) 399 16.2.2 IF函數(shù) 401 16.2.3 LOOKUP函數(shù) 406 16.2.4 VLOOKUP函數(shù) 408 16.2.5 CHOOSE函數(shù) 411 第17章 Excel圖形 413 17.1 創(chuàng)建圖形 413 17.1.1 點 413 17.1.2 直線段 415 17.1.3 矩形、圓角矩形、橢圓和圓 416 17.1.4 多義線和多邊形 418 17.1.5 曲線 420 17.1.6 標簽 422 17.1.7 文本框 423 17.1.8 標注 424 17.1.9 自選圖形 426 17.1.10 藝術(shù)字 428 17.2 圖形變換 429 17.2.1 圖形平移 429 17.2.2 圖形旋轉(zhuǎn) 430 17.2.3 圖形縮放 431 17.2.4 圖形翻轉(zhuǎn) 433 17.3 圖片操作 434 17.3.1 圖片的添加 434 17.3.2 圖片的幾何變換 435 第18章 Excel圖表 437 18.1 創(chuàng)建圖表 437 18.1.1 創(chuàng)建圖表工作表中的圖表 437 18.1.2 創(chuàng)建嵌入式圖表 440 18.1.3 使用Shapes對象創(chuàng)建圖表 442 18.1.4 綁定數(shù)據(jù) 444 18.2 圖表及其序列 445 18.2.1 設(shè)置圖表的類型 445 18.2.2 Chart對象的常用屬性和方法 449 18.2.3 設(shè)置序列 450 18.2.4 設(shè)置序列中單個點的屬性 453 18.3 坐標系 456 18.3.1 Axes對象和Axis對象 456 18.3.2 坐標軸標題 459 18.3.3 數(shù)值軸的取值范圍 460 18.3.4 刻度線 461 18.3.5 刻度標簽 462 第19章 Excel數(shù)據(jù)透視表 465 19.1 數(shù)據(jù)透視表的創(chuàng)建與引用 465 19.1.1 使用PivotTableWizard方法創(chuàng)建數(shù)據(jù)透視表 465 19.1.2 使用緩存創(chuàng)建數(shù)據(jù)透視表 468 19.1.3 數(shù)據(jù)透視表的引用 470 19.1.4 數(shù)據(jù)透視表的刷新 471 19.2 數(shù)據(jù)透視表的編輯 472 19.2.1 添加字段 472 19.2.2 修改字段 474 19.2.3 設(shè)置字段的數(shù)字格式 475 19.2.4 設(shè)置單元格區(qū)域的格式 476 19.3 數(shù)據(jù)透視表的布局和樣式 478 19.3.1 設(shè)置數(shù)據(jù)透視表的布局 478 19.3.2 設(shè)置數(shù)據(jù)透視表的樣式 479 19.4 數(shù)據(jù)透視表的排序和篩選 480 19.4.1 數(shù)據(jù)透視表的排序 480 19.4.2 數(shù)據(jù)透視表的篩選 481 19.5 數(shù)據(jù)透視表的計算 483 19.5.1 設(shè)置總計行和總計列的顯示方式 484 19.5.2 設(shè)置字段的匯總方式 485 19.5.3 設(shè)置數(shù)據(jù)的顯示方式 486 第20章 正則表達式 487 20.1 正則表達式概述 487 20.1.1 什么是正則表達式 487 20.1.2 使用正則表達式 488 20.2 正則表達式的編寫規(guī)則 494 20.2.1 元字符 494 20.2.2 重復 499 20.2.3 字符類 503 20.2.4 分支條件 507 20.2.5 捕獲分組和非捕獲分組 508 20.2.6 零寬斷言 512 20.2.7 負向零寬斷言 513 20.2.8 貪婪與懶惰 514 20.3 正則表達式的應用示例 516 20.3.1 應用示例1:計算各班的總?cè)藬?shù) 516 20.3.2 應用示例2:整理食材數(shù)據(jù) 518 20.3.3 應用示例3:數(shù)據(jù)匯總 519 第21章 統(tǒng)計分析 522 21.1 數(shù)據(jù)的導入 522 21.1.1 使用對象模型導入數(shù)據(jù) 522 21.1.2 使用pandas包導入數(shù)據(jù) 522 21.2 數(shù)據(jù)整理 527 21.2.1 使用對象模型進行數(shù)據(jù)整理 527 21.2.2 使用Excel函數(shù)進行數(shù)據(jù)整理 527 21.2.3 使用Power Query和pandas包進行數(shù)據(jù)整理 527 21.2.4 使用SQL進行數(shù)據(jù)整理 529 21.3 數(shù)據(jù)預處理 530 21.3.1 數(shù)據(jù)去重 530 21.3.2 缺失值處理 533 21.3.3 異常值處理 536 21.3.4 數(shù)據(jù)轉(zhuǎn)換 542 21.4 描述性統(tǒng)計 543 21.4.1 描述集中趨勢 543 21.4.2 描述離中趨勢 545 第22章 Python與Excel VBA混合編程 547 22.1 在Python中調(diào)用Excel VBA代碼 547 22.1.1 Excel VBA編程環(huán)境 547 22.1.2 編寫Excel VBA程序 547 22.1.3 在Python中調(diào)用Excel VBA函數(shù) 548 22.2 在Excel VBA中調(diào)用Python 549 22.2.1 xlwings加載項 549 22.2.2 編寫Python文件 551 22.2.3 在Excel VBA中調(diào)用Python文件 551 22.2.4 xlwings加載項使用“避坑”指南 552 22.3 自定義函數(shù) 553 22.3.1 用Excel VBA自定義函數(shù) 553 22.3.2 用Excel VBA調(diào)用Python自定義函數(shù)的準備工作 554 22.3.3 編寫Python文件并在Excel VBA中調(diào)用 555 22.3.4 常見錯誤 555
你還可能感興趣
我要評論
|