
內容簡介
在數據分析方麵,Python實際上已經遠遠超越VBA,因為使用Python提供的數據處理函數和模塊就可以實現很多功能,既快速、可靠,又簡便。
本書結合OpenPyXI、win32com、xlwings和pandas等Python包,全麵介紹使用Python實現Excel腳本開發的各種可能性,涉及的內容包括Python語言基礎、Python文件操作、Excel對象模型、Excel圖形繪製、Excel圖表繪製、字典在Excel中的應用、正則表達式在Excel中的應用、使用pandas包提高數據處理效率、使用Matplotlib包繪圖、Python與ExcelVBA混合編程等。
本書適合任何對ExcelPython腳本開發感興趣的朋友閱讀,可以是有編程需求的職場辦公人員、數據分析人員、大學生、科研人員和程序員等。
作者簡介
童大謙
具有15年以上VB、VBA、.NET開發經驗,開發了多個數學、數據分析與可視化方麵的軟件,以及與科研院所合作開發了若幹個軟件係統。
對Python、MATLAB、SPSS、R等數據分析軟件非常熟悉,出版多本相關圖書。曾在高校執教,CSDN高級講師,全網學員目前近20萬人。
目錄
語言基礎篇第1章Python語言基礎 2
1.1Python語言及其編程環境 2
1.1.1Python語言及其特點 2
1.1.2下載和安裝Python 3
1.1.3Python語言的編程環境 4
1.2常量和變量 7
1.2.1常量 8
1.2.2變量及其名稱 9
1.2.3變量的聲明、賦值和刪除 9
1.2.4深入變量 11
1.2.5變量的數據類型 12
1.3數字 12
1.3.1整型數字 12
1.3.2浮點型數字 13
1.3.3複數 13
1.3.4類型轉換 14
1.3.5Python的整數緩存機製 15
1.4字符串 16
1.4.1創建字符串 16
1.4.2索引和切片 17
1.4.3轉義字符 17
1.4.4字符串的格式化輸出 18
1.4.5字符串的長度和大小寫 20
1.4.6字符串的分割、連接和刪除 21
1.4.7字符串的查找和替換 22
1.4.8字符串的比較 23
1.4.9字符串緩存機製 24
1.5列表 25
1.5.1創建列表 25
1.5.2添加列表元素 28
1.5.3索引和切片 29
1.5.4刪除列表元素 31
1.5.5列表的排序 32
1.5.6操作函數 32
1.5.7二維列表 33
1.6元組 34
1.6.1元組的創建和刪除 34
1.6.2索引和切片 35
1.6.3基本運算和操作 36
1.7字典 37
1.7.1字典的創建 37
1.7.2索引 38
1.7.3字典元素的增刪改 39
1.7.4字典數據的格式化輸出 40
1.8集合 41
1.8.1集合的創建 41
1.8.2集合元素的添加和刪除 42
1.8.3集合的運算 42
1.9處理日期和時間 45
1.9.1獲取日期和時間 45
1.9.2格式化日期和時間 46
1.10表達式 47
1.10.1算術運算符 47
1.10.2關係運算符 48
1.10.3邏輯運算符 49
1.10.4賦值/成員/身份運算符 50
1.10.5運算符的優先級 50
1.11流程控製 52
1.11.1判斷結構 52
1.11.2循環結構——for循環 57
1.11.3循環結構——while循環 61
1.11.4其他結構 63
1.12函數 65
1.12.1內部函數 65
1.12.2標準模塊函數 67
1.12.3自定義函數 69
1.12.4變量的作用範圍 75
1.12.5匿名函數 77
1.13模塊 77
1.13.1內置模塊和第三方模塊 77
1.13.2自定義模塊 78
1.14工程 79
1.14.1導入內置模塊和第三方模塊 79
1.14.2導入自定義模塊 80
1.15異常處理 81
1.15.1常見的異常 81
1.15.2異常捕獲——單分支的情況 82
1.15.3異常捕獲——多分支的情況 83
1.15.4異常捕獲——try…except…else… 84
1.15.5異常捕獲——try...finally... 84
第2章Python文件操作 86
2.1使用Python的open函數操作文件 86
2.1.1open函數 86
2.1.2創建文本文件並寫入數據 87
2.1.3讀取文本文件數據 89
2.1.4向文本文件中追加數據 90
2.1.5讀/寫二進製文件數據 91
2.1.6使用struct模塊讀取二進製文件 92
2.2使用OS模塊操作文件 93
2.2.1文件操作 93
2.2.2目錄操作 95
2.2.3路徑操作 96
2.2.4係統操作 97
對象模型篇
第3章Excel對象模型:
OpenPyXl包 100
3.1OpenPyXl包概述 100
3.1.1Excel相關Python包的比較 100
3.1.2OpenPyXI包及其安裝 101
3.1.3Excel對象模型 101
3.1.4使用OpenPyXI包的一般過程 102
3.2工作簿對象 102
3.2.1創建、保存和關閉工作簿 102
3.2.2打開已有的工作簿文件 103
3.3工作表對象 104
3.3.1創建和刪除工作表 104
3.3.2管理工作表 105
3.3.3引用工作表 106
3.3.4複製、移動工作表 106
3.3.5行/列操作 107
3.3.6工作表對象的其他屬性和方法 113
3.4單元格對象 114
3.4.1單元格的引用和賦值 114
3.4.2引用單元格區域 115
3.4.3操作單元格區域 116
3.4.4設置單元格樣式 117
3.4.5插入圖片 128
3.4.6插入公式 129
3.5綜合應用 129
3.5.1批量新建和刪除工作表 129
3.5.2按列拆分工作表 131
3.5.3將多個工作表分別保存為工作簿 133
3.5.4將多個工作表合並為一個工作表 134
第4章Excel對象模型:win32com和xlwings包 137
4.1win32com和xlwings包概述 137
4.1.1win32com包及其安裝 137
4.1.2xlwings包及其安裝 139
4.2Excel對象 139
4.2.1Excel對象及其層次結構 139
4.2.2使用win32com創建Excel對象 140
4.2.3使用xlwings創建Excel對象 140
4.2.4xlwings的兩種編程方式 141
4.3單元格對象 141
4.3.1引用單元格 142
4.3.2引用整行和整列 145
4.3.3引用區域 147
4.3.4引用所有單元格/特殊區域/區域的集合 151
4.3.5擴展引用當前工作表中的單元格區域 154
4.3.6引用末行或末列 156
4.3.7引用特殊的單元格 158
4.3.8獲取區域的行數、列數、左上角
和右下角單元格的坐標、形狀、
大小 159
4.3.9插入單元格或區域 161
4.3.10選擇和清除單元格 162
4.3.11複製、粘貼、剪切和刪除單元格 164
4.3.12設置單元格的名稱、批注和字體 168
4.3.13設置單元格的對齊方式、背景色和邊框 172
4.4工作表對象 175
4.4.1相關對象介紹 175
4.4.2創建和引用工作表 175
4.4.3激活、複製、移動和刪除工作表 179
4.4.4隱藏和顯示工作表 182
4.4.5選擇行和列 183
4.4.6複製、剪切行和列 185
4.4.7插入行和列 187
4.4.8刪除行和列 189
4.4.9設置行高和列寬 191
4.5工作簿對象 193
4.5.1創建和打開工作簿 193
4.5.2引用、激活、保存和關閉工作簿 195
4.6Excel應用對象 197
4.6.1Application(App)對象和Apps對象 197
4.6.2定義位置、大小、標題、可見性和狀態屬性 199
4.6.3定義其他常用屬性 201
4.7數據讀/寫 202
4.7.1Excel工作表與Python列表之間的數據讀/寫 203
4.7.2Excel工作表與Python字典之間的數據讀/寫 207
4.7.3Excel工作表與PythonDataFrame之間的數據讀/寫 208
4.8綜合應用 208
4.8.1批量新建和刪除工作表 208
4.8.2按列拆分工作表 211
4.8.3將多個工作表分別保存為工作簿 215
4.8.4將多個工作表合並為一個工作表 217
圖形圖表篇
第5章使用Python繪製Excel圖形 224
5.1創建圖形 224
5.1.1點 224
5.1.2直線段 226
5.1.3矩形、圓角矩形、橢圓形和圓形 226
5.1.4多義線和多邊形 228
5.1.5曲線 229
5.1.6標簽 230
5.1.7文本框 231
5.1.8標注 231
5.1.9自選圖形 233
5.1.10圖表 234
5.1.11藝術字 235
5.2圖形屬性設置 237
5.2.1顏色設置 237
5.2.2線條屬性:LineFormat對象 239
5.2.3線條屬性:顏色、線型和線寬 240
5.2.4線條屬性:箭頭、透明度和圖案填充 241
5.2.5線條屬性:多義線、曲線和多邊形的頂點 243
5.2.6麵的屬性:FillFormat對象、顏色和透明度 245
5.2.7麵的屬性:單色填充和漸變色填充 246
5.2.8麵的屬性:圖案填充、圖片填充和紋理填充 250
5.2.9文本屬性 253
5.3圖形變換 254
5.3.1圖形平移 254
5.3.2圖形旋轉 255
5.3.3圖形縮放 255
5.3.4圖形翻轉 256
5.4其他圖形操作 257
5.4.1遍歷工作表中的圖形 257
5.4.2固定圖形在工作表中的位置 260
5.4.3動畫 260
5.5圖片操作 261
5.5.1創建圖片 261
5.5.2圖片的幾何變換 262
第6章使用Python繪製Excel圖表 263
6.1創建圖表 263
6.1.1使用xlwings包創建圖表 263
6.1.2使用API方式創建圖表 265
6.1.3使用Shapes對象創建圖表 266
6.1.4綁定數據 269
6.2圖表及其序列設置 270
6.2.1設置圖表類型 270
6.2.2Chart對象的常用屬性和方法 271
6.2.3設置序列 272
6.2.4設置序列中單個點的屬性 274
6.3基本圖形元素的屬性設置 276
6.3.1設置顏色 276
6.3.2設置線形圖形元素的屬性 277
6.3.3設置區域的透明度和顏色填充 277
6.3.4設置區域的圖案/圖片/紋理填充 279
6.4坐標係設置 280
6.4.1設置Axes對象和Axis對象 280
6.4.2設置坐標軸標題 281
6.4.3設置數值軸取值範圍 282
6.4.4設置刻度線 283
6.4.5設置刻度標簽 283
6.4.6設置網格線 285
6.4.7設置多軸圖 286
6.4.8設置對數坐標圖 287
6.4.9設置其他屬性 288
6.5圖表元素設置 290
6.5.1SetElement方法 290
6.5.2設置圖表區域/繪圖區 292
6.5.3設置圖例 293
6.6輸出圖表 294
6.6.1將圖表複製到剪貼板 295
6.6.2將圖表保存為圖片 296
數據處理篇
第7章使用Python字典處理Excel數據 298
7.1數據提取 298
7.1.1提取首次數據 298
7.1.2提取末次數據 300
7.2數據去重 302
7.2.1使用列表去重 302
7.2.2使用集合去重 304
7.2.3使用字典去重 305
7.2.4使用字典對象的fromkeys方法去重 306
7.2.5多表去重 308
7.2.6跨表去重 309
7.3數據查詢 312
7.3.1個案查詢 312
7.3.2多條件查詢 313
7.4數據匯總 314
7.4.1出現次數匯總 315
7.4.2數據求和匯總 316
7.4.3多條件匯總 318
7.5數據排序 319
第8章使用Python正則表達式處理Excel數據 322
8.1正則表達式概述 322
8.1.1什麼是正則表達式 322
8.1.2正則表達式示例 323
8.2在Python中使用正則表達式 325
8.2.1re模塊 325
8.2.2Match對象 330
8.2.3Pattern對象 332
8.3正則表達式的編寫規則 334
8.3.1元字符 334
8.3.2重複 338
8.3.3字符類 343
8.3.4分支條件 344
8.3.5捕獲分組和非捕獲分組 345
8.3.6零寬斷言 349
8.3.7負向零寬斷言 351
8.3.8貪婪匹配與懶惰匹配 353
第9章更快、更簡潔:使用pandas包處理數據 354
9.1NumPy和pandas包概述 354
9.1.1NumPy和pandas包簡介 354
9.1.2NumPy和pandas包的安裝 355
9.2NumPy和pandas包提供的數據類型 355
9.2.1NumPy數組 355
9.2.2pandasSeries 359
9.2.3pandasDataFrame 363
9.3數據輸入和輸出 370
9.3.1Excel數據的讀/寫 370
9.3.2CSV數據的讀/寫 373
9.3.3將DataFrame數據保存到新的工作表中 374
9.3.4在同一個工作表中讀/寫多個DataFrame數據 375
9.4數據整理 377
9.4.1添加行或列 377
9.4.2插入行或列 378
9.4.3更改數據 380
9.4.4刪除行或列 381
9.4.5添加前綴或後綴 382
9.4.6數據去重 383
9.4.7數據篩選 383
9.4.8數據轉置 385
9.4.9合並數據 385
9.4.10連接數據 393
9.4.11拚接數據 395
9.4.12追加數據 397
第10章擴展Excel的數據可視化功能:Matplotlib包 398
10.1Matplotlib包概述 398
10.1.1Matplotlib包簡介 398
10.1.2安裝Matplotlib包 399
10.2使用Matplotlib包繪圖 399
10.2.1點圖 399
10.2.2線形圖 401
10.2.3條形圖 404
10.2.4麵積圖 406
10.2.5餅圖 407
10.3導出用Matplotlib包繪製的圖形 408
10.3.1保存用Matplotlib包繪製的圖形 408
10.3.2將用Matplotlib包繪製的圖形添加到Excel工作表中 409
擴展編程篇
第11章Python與ExcelVBA混合編程 412
11.1在Python中調用VBA代碼 412
11.1.1ExcelVBA編程環境 412
11.1.2編寫ExcelVBA程序 414
11.1.3在Python中調用VBA函數 414
11.2在VBA中調用Python代碼 415
11.2.1xlwings加載項 415
11.2.2編寫Python文件 417
11.2.3在VBA中調用Python函數 418
11.2.4xlwings加載項使用避坑指南 419
11.3自定義函數(UDF) 420
11.3.1使用VBA自定義函數 420
11.3.2在VBA中調用Python自定義函數的準備工作 421
11.3.3在VBA中調用Python自定義函數 421
11.3.4常見錯誤 422
······
最後修改:2024 年 02 月 27 日
© 允許規範轉載
