對比 VBA 學 Python:高效實現數據處理自動化

童大謙

  • 出版商: 電子工業
  • 出版日期: 2022-10-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • 頁數: 568
  • 裝訂: 平裝
  • ISBN: 7121443104
  • ISBN-13: 9787121443107
  • 相關分類: Excel
  • 立即出貨

買這商品的人也買了...

商品描述

本書旨在幫助讀者以最快的速度,系統地從Excel VBA腳本編程轉入Python腳本編程,
或者從Python腳本編程轉入VBA腳本編程,或者同時學會兩種腳本編程方法。
本書使用Excel VBA和Python雙語言對照的方式,能幫助VBA用戶快速掌握Python腳本編程,
並使用雙語實現Excel腳本編程和數據處理自動化。
本書包括對像模型、界面設計、文件操作、Excel函數、Excel圖形、
Excel圖表、Excel數據透視表、正則表達式、統計分析和混合編程等內容。
關於Python方面,本書詳細地介紹了xlwings包的使用方法。
本書適合任何對Excel腳本開發感興趣的讀者閱讀,
如有編程需求的職場辦公人員、數據分析人員、大學生、科研人員和程序員等。

作者簡介

童大謙
具有15年以上VB、VBA、.NET開發經驗,開發了多個數學、
數據分析與可視化方面的軟件,以及與科研院所合作開發了若干個軟件系統。
對Python、MATLAB、SPSS、R等數據分析軟件非常熟悉,出版多本相關圖書。
曾在高校執教,CSDN高級講師,全網學員目前近20萬人。

目錄大綱

第1章Excel編程與Python編程概述 1
1.1 關於Excel腳本編程 1
1.1.1 為什麼要進行Excel腳本編程 1
1.1.2 選擇VBA還是選擇Python 2
1.2 使用Excel VBA編寫程序 2
1.2.1 Excel VBA的編程環境 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的編程環境 6
1.3.4 編寫Python程序 7
1.4 編程規範 9
1.4.1 代碼註釋 9
1.4.2 代碼續行 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 變量的數據類型 21
2.3.1 基本的數據類型 21
2.3.2 數據類型轉換 23
2.4 數字 25
2.4.1 整型數字 25
2.4.2 浮點型數字 26
2.4.3 複數 27
2.4.4 類型轉換的有關問題 28
2.4.5 Python的整數緩存機制 29

第3章表達式 30
3.1 算術運算符 30
3.2 關係運算符 32
3.3 邏輯運算符 34
3.4 賦值運算符和算術賦值運算符 36
3.5 成員運算符 36
3.6 身份運算符 38
3.7 運算符的優先級 38

第4章初識Excel對像模型 42
4.1 Excel對像模型 42
4.1.1 對象及相關概念 42
4.1.2 Excel對象及其層次結構 43
4.2 操作Excel對像模型的一般過程 44
4.2.1 使用Excel VBA操作Excel對像模型的一般過程 44
4.2.2 與Excel相關的Python包 45
4.2.3 xlwings包及其安裝 46
4.2.4 使用xlwings包操作Excel對像模型的一般過程 47
4.3 與Excel對像模型有關的常用操作 49
4.3.1 獲取文件的當前路徑 49
4.3.2 對象的引用 50
4.3.3 獲取末行行號:給參數指定常數值 51
4.3.4 擴展單元格區域 52
4.3.5 修改單元格區域的屬性 53

第5章流程控制 54
5.1 判斷結構 54
5.1.1 單分支判斷結構 54
5.1.2 二分支判斷結構 55
5.1.3 多分支判斷結構 56
5.1.4 有嵌套的判斷結構 58
5.1.5 三元操作表達式 60
5.1.6 判斷結構示例:判斷是否為閏年 62
5.2 循環結構:for循環 64
5.2.1 for循環 64
5.2.2 嵌套for循環 66
5.2.3 Python中的for…else的用法 67
5.2.4 for循環示例:求給定數據的最大值和最小值 68
5.3 循環結構:while循環 69
5.3.1 簡單while循環 70
5.3.2 Python中有分支的while循環 72
5.3.3 嵌套while循環 72
5.3.4 while循環示例:求給定數據的最大值和最小值 73
5.4 Excel VBA的其他結構 75
5.4.1 For Each…Next循環結構 75
5.4.2 Do循環結構 76
5.5 其他語句 77
5.5.1 Excel VBA中的其他語句 77
5.5.2 Python中的其他語句 78

第6章字符串 80
6.1 創建字符串 80
6.1.1 直接創建字符串 80
6.1.2 通過轉換類型創建字符串 83
6.1.3 字符串的長度 84
6.1.4 轉義字符 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 實現字符串的格式化輸出 91
6.3.2 字符串的格式化輸出示例:數據保留4位小數 95
6.4 字符串的大小寫 96
6.4.1 設置字符串的大小寫 96
6.4.2 設置字符串的大小寫示例:列數據統一大小寫 98
6.5 字符串的分割和連接 99
6.5.1 字符串的分割 100
6.5.2 字符串的分割示例:分割物資規格 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 字符串的查找和替換示例:統一列數據的單位 111
6.7 字符串的比較 113
6.7.1 使用關係運算符進行比較 113
6.7.2 使用函數進行比較 114
6.7.3 字符串的比較示例:找老鄉 116
6.8 刪除字符串兩端的空格 119
6.9 Python中字符串的緩存機制 120

第7章數組 122
7.1 Excel VBA中的數組 122
7.1.1 靜態數組 122
7.1.2 常量數組 124
7.1.3 動態數組 125
7.1.4 數組元素的增、刪、改 126
7.1.5 數組元素的去重 129
7.1.6 數組元素的排序 130
7.1.7 數組元素的計算 131
7.1.8 數組元素的拆分和合併 132
7.1.9 數組元素的過濾 133
7.1.10 創建二維數組 133
7.1.11 改變二維數組的大小 134
7.1.12 Excel工作表與數組交換數據 135
7.1.13 數組示例:給定數據的簡單統計 142
7.1.14 數組示例:突出顯示給定數據的重複值 143
7.1.15 數組示例:求大於某數的最小值 144
7.1.16 數組示例:創建楊輝三角 146
7.2 Python中的數組:列表 147
7.2.1 創建列表 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工作表與列表交換數據 158
7.2.13 數組示例:給定數據的簡單統計 160
7.2.14 數組示例:突出顯示給定數據的重複值 161
7.2.15 數組示例:求大於某數的最小值 162
7.2.16 數組示例:創建楊輝三角 163
7.3 Python中的數組:元組 164
7.3.1 元組的創建和刪除 164
7.3.2 元組的索引和切片 165
7.3.3 基本運算和操作 166
7.4 Python中的數組:NumPy數組 167
7.4.1 NumPy包及其安裝 167
7.4.2 創建NumPy數組 168
7.4.3 NumPy數組的索引和切片 170
7.4.4 NumPy數組的計算 171
7.4.5 Excel工作表與NumPy數組交換數據 174
7.5 Python中帶索引的數組: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交換數據 187

第8章字典 191
8.1 字典的創建 191
8.1.1 創建字典對象 191
8.1.2 Excel VBA中後期綁定與前期綁定的比較 193
8.1.3 Python中更多創建字典的方法 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 字典數據的讀/寫 202
8.4.1 字典數據的格式化輸出 202
8.4.2 Excel工作表與字典之間的數據讀/寫 204
8.5 字典應用示例 207
8.5.1 應用示例1:匯總多行數據中唯一值出現的次數 207
8.5.2 應用示例2:匯總球員獎項 209
8.5.3 應用示例3:匯總研究課題的子課題 212

第9章集合 215
9.1 集合的相關概念 215
9.1.1 集合的概念 215
9.1.2 集合運算 215
9.2 集合的創建和修改 216
9.2.1 創建集合 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:統計參加興趣班的所有學生 227
9.4.2 應用示例2:跨表去重 229
9.4.3 應用示例3:找出報和沒有報兩個興趣班的學生 232

第10章函數 235
10.1 內部函數 235
10.1.1 常見的內部函數 235
10.1.2 Python標準模塊函數 238
10.2 第三方庫函數 241
10.3 自定義函數 243
10.3.1 函數的定義和調用 243
10.3.2 有多個返回值的情況 246
10.3.3 可選參數和默認參數 248
10.3.4 可變參數 250
10.3.5 參數為字典 251
10.3.6 傳值還是傳址 253
10.4 變量的作用範圍和生存期 254
10.4.1 變量的作用範圍 255
10.4.2 變量的生存期和Excel VBA中的靜態變量 256
10.5 Python中的匿名函數 257
10.6 函數應用示例 258
10.6.1 應用示例1:計算圓環的面積 258
10.6.2 應用示例2:遞歸計算階乘 260
10.6.3 應用示例3:刪除字符串中的數字 262

第11章模塊與工程 265
11.1 模塊 265
11.1.1 內置模塊和第三方模塊 265
11.1.2 函數式自定義模塊 265
11.1.3 腳本式自定義模塊 267
11.1.4 類模塊 267
11.1.5 窗體模塊 267
11.2 工程 268
11.2.1 使用內置模塊和第三方模塊 268
11.2.2 使用其他自定義模塊 269

第12章調試與異常處理 271
12.1 Excel VBA中的調試 271
12.1.1 輸入錯誤的調試 271
12.1.2 運行時錯誤的調試 272
12.1.3 邏輯錯誤的調試 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 關於Excel對像模型的更多內容 279
13.1.2 Python xlwings的兩種編程方式 279
13.2 Excel應用對象 280
13.2.1 Application對象 280
13.2.2 位置、大小、標題、可見性和狀態屬性 282
13.2.3 其他常用屬性 283
13.3 工作簿對象 285
13.3.1 創建和打開工作簿 285
13.3.2 引用、激活、保存和關閉工作簿 287
13.4 工作表對象 290
13.4.1 相關對象 290
13.4.2 創建和引用工作表 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 設置行高和列寬 307
13.5 單元格對象 309
13.5.1 引用單元格 309
13.5.2 引用整行和整列 312
13.5.3 引用區域 314
13.5.4 引用所有單元格、特殊區域、區域的集合 318
13.5.5 擴展引用當前工作表中的單元格區域 321
13.5.6 引用末行或末列 323
13.5.7 引用特殊的單元格 324
13.5.8 區域的行數、列數、左上角、右下角、形狀、大小 326
13.5.9 插入單元格或區域 327
13.5.10 單元格的選擇和清除 329
13.5.11 單元格的複制、粘貼、剪切和刪除 331
13.5.12 單元格的名稱、批註和字體設置 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章 界面設計 350
14.1 窗體 350
14.1.1 創建窗體 350
14.1.2 窗體的主要屬性、方法和事件 351
14.2 控件 354
14.2.1 創建控件的方法 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 旋轉按鈕控件 374
14.2.12 方框控件 375
14.3 界面設計示例 376

第15章 文件操作 383
15.1 文本文件的讀/寫 383
15.1.1 創建文本文件並寫入數據 383
15.1.2 讀取文本文件 386
15.1.3 向文本文件追加數據 388
15.2 二進製文件的讀/寫 390
15.2.1 創建二進製文件並寫入數據 390
15.2.2 讀取二進製文件 392

第16章 Excel工作表函數 394
16.1 Excel工作表函數概述 394
16.1.1 Excel工作表函數簡介 394
16.1.2 在Excel中使用工作表函數 394
16.1.3 在Excel VBA中使用工作表函數 396
16.1.4 在Python中使用工作表函數 397
16.2 常用的Excel工作表函數 399
16.2.1 SUM函數 399
16.2.2 IF函數 401
16.2.3 LOOKUP函數 406
16.2.4 VLOOKUP函數 408
16.2.5 CHOOSE函數 411

第17章 Excel圖形 413
17.1 創建圖形 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 藝術字 428
17.2 圖形變換 429
17.2.1 圖形平移 429
17.2.2 圖形旋轉 430
17.2.3 圖形縮放 431
17.2.4 圖形翻轉 433
17.3 圖片操作 434
17.3.1 圖片的添加 434
17.3.2 圖片的幾何變換 435

第18章 Excel圖表 437
18.1 創建圖表 437
18.1.1 創建圖表工作表中的圖表 437
18.1.2 創建嵌入式圖表 440
18.1.3 使用Shapes對象創建圖表 442
18.1.4 綁定數據 444
18.2 圖表及其序列 445
18.2.1 設置圖表的類型 445
18.2.2 Chart對象的常用屬性和方法 449
18.2.3 設置序列 450
18.2.4 設置序列中單個點的屬性 453
18.3 坐標系 456
18.3.1 Axes對象和Axis對象 456
18.3.2 坐標軸標題 459
18.3.3 數值軸的取值範圍 460
18.3.4 刻度線 461
18.3.5 刻度標籤 462

第19章 Excel數據透視表 465
19.1 數據透視表的創建與引用 465
19.1.1 使用PivotTableWizard方法創建數據透視表 465
19.1.2 使用緩存創建數據透視表 468
19.1.3 數據透視表的引用 470
19.1.4 數據透視表的刷新 471
19.2 數據透視表的編輯 472
19.2.1 添加字段 472
19.2.2 修改字段 474
19.2.3 設置字段的數字格式 475
19.2.4 設置單元格區域的格式 476
19.3 數據透視表的佈局和樣式 478
19.3.1 設置數據透視表的佈局 478
19.3.2 設置數據透視表的樣式 479
19.4 數據透視表的排序和篩選 480
19.4.1 數據透視表的排序 480
19.4.2 數據透視表的篩選 481
19.5 數據透視表的計算 483
19.5.1 設置總計行和總計列的顯示方式 484
19.5.2 設置字段的匯總方式 485
19.5.3 設置數據的顯示方式 486

第20章 正則表達式 487
20.1 正則表達式概述 487
20.1.1 什麼是正則表達式 487
20.1.2 使用正則表達式 488
20.2 正則表達式的編寫規則 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:計算各班的總人數 516
20.3.2 應用示例2:整理食材數據 518
20.3.3 應用示例3:數據匯總 519

第21章 統計分析 522
21.1 數據的導入 522
21.1.1 使用對像模型導入數據 522
21.1.2 使用pandas包導入數據 522
21.2 數據整理 527
21.2.1 使用對像模型進行數據整理 527
21.2.2 使用Excel函數進行數據整理 527
21.2.3 使用Power Query和pandas包進行數據整理 527
21.2.4 使用SQL進行數據整理 529
21.3 數據預處理 530
21.3.1 數據去重 530
21.3.2 缺失值處理 533
21.3.3 異常值處理 536
21.3.4 數據轉換 542
21.4 描述性統計 543
21.4.1 描述集中趨勢 543
21.4.2 描述離中趨勢 545

第22章 Python與Excel VBA混合編程 547
22.1 在Python中調用Excel VBA代碼 547
22.1.1 Excel VBA編程環境 547
22.1.2 編寫Excel VBA程序 547
22.1.3 在Python中調用Excel VBA函數 548
22.2 在Excel VBA中調用Python 549
22.2.1 xlwings加載項 549
22.2.2 編寫Python文件 551
22.2.3 在Excel VBA中調用Python文件 551
22.2.4 xlwings加載項使用“避坑”指南 552
22.3 自定義函數 553
22.3.1 用Excel VBA自定義函數 553
22.3.2 用Excel VBA調用Python自定義函數的準備工作 554
22.3.3 編寫Python文件並在Excel VBA中調用 555
22.3.4 常見錯誤 555