精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊 Python 辦公自動化之一 Excel

開發 后端 自動化
在我們日常工作中,經常會使用 Word、Excel、PPT、PDF 等辦公軟件,但是,經常會遇到一些重復繁瑣的事情,這時候手工操作顯得效率極其低下;通過 Python 實現辦公自動化變的很有必要,接下來的 一系列 文章,我將帶大家對 Python 辦公自動化做一個全面的總結,絕對的干貨!

 [[350611]]

本文轉載自微信公眾號「AirPython」,作者星安果。轉載本文請聯系AirPython公眾號。

 1. 前言

在我們日常工作中,經常會使用 Word、Excel、PPT、PDF 等辦公軟件

但是,經常會遇到一些重復繁瑣的事情,這時候手工操作顯得效率極其低下;通過 Python 實現辦公自動化變的很有必要

接下來的 一系列 文章,我將帶大家對 Python 辦公自動化做一個全面的總結,絕對的干貨!

2. 準備

使用 Python 操作 Excel 文件,常見的方式如下:

  • xlrd / xlwt
  • openpyxl
  • Pandas
  • xlsxwriter
  • xlwings
  • pywin32

xlrd 和 xlwt 是操作 Excel 文件最多的兩個依賴庫

其中,

xlrd 負責讀取 Excel 文件,xlwt 可以寫入數據到 Excel 文件

我們安裝這兩個依賴庫

  1. # 安裝依賴庫 
  2. pip3 install xlrd  
  3. pip3 install xlwt  

3. xlrd 讀取 Excel

使用 xlrd 中的 open_workbook(filepath) 打開本地一個 Excel 文件

  1. import xlrd 
  2.  
  3. # 打開文件,返回一個工作簿對象 
  4. wb = xlrd.open_workbook(file_path) 

工作簿對象的 nsheets 屬性獲取 Sheet 數目,sheet_names() 方法返回所有 Sheet 名稱的列表

  1. # 統計sheet數量 
  2. sheets_num, sheets_names = wb.nsheets, wb.sheet_names() 
  3. print('sheet數量一共有:', sheets_num) 
  4. print('sheet名稱分別為:', sheets_names) 

篩選出工作簿中的某一個 Sheet 有 2 種方式,分別是:

  • 通過 Sheet 名稱
  • 使用位置索引,從 0 開始
  1. # 獲取某一個sheet 
  2. # 通過名稱或者索引獲取 
  3. sheet = wb.sheet_by_index(0) 
  4.  
  5. # sheet = wb.sheet_by_name('第一個Sheet'
  6. print(sheet) 

每一個 sheet 對象都可以利用 name、nrows、ncols 獲取 Sheet 名稱、行數量、列數量

另外

row_values(index)、col_values(index) 分別用于獲取某一行或某一列的數據列表

  1. # 獲取某一個sheet中,包含的行數量、列數量 
  2. sheet_name, sheet_row_count, sheet_column_count = sheet.name, sheet.nrows, sheet.ncols 
  3. print('當前sheet名稱為:', sheet_name, ",一共有:", sheet_row_count, "行;有:", sheet_column_count, "列"
  4.  
  5. # 單獨獲取某一行數據,索引從0開始 
  6. # 比如:獲取第2行數據 
  7. row_datas = sheet.row_values(1) 
  8. print('第2行數據為:', row_datas) 
  9.  
  10. # 單獨獲取某一列數據,索引從0開始 
  11. # 比如:獲取第二列數據 
  12. column_datas = sheet.col_values(1) 
  13. print('第2列數據為:', column_datas) 

單元格可以通過行索引、列索引,調用 cell(row_index,column_index) 函數獲取

需要注意的是,行索引和列索引都是從 0 開始,即:0 代表第一行

在 xlrd 中,單元格的數據類型包含 6 種,用 ctype 屬性對應關系如下:

  • 0 -- 空(empty)
  • 1 -- 字符串(string)
  • 2 -- 數字(number)
  • 3 -- date(日期)
  • 4 -- boolean(布爾值)
  • 5 -- error(錯誤)
  1. # 獲取某一個單元格的數據 
  2. # 比如:獲取第2行第1列的單元格的數據 
  3. one_cell = sheet.cell(1, 0) 
  4. # 單元格的值 
  5. cell_value = one_cell.value 
  6. print("單元格的值為:", cell_value) 
  7. # 單元格數據類型 
  8. cell_type = one_cell. 
  9. print("單元格數據類型為:", cell_type) 

最后,如果要獲取當前 Sheet 所有單元格中的數據,可以通過遍歷所有行、列來操作

  1. # 獲取所有單元格的值 
  2. print('表格中所有數據如下:'
  3. for r in range(sheet.nrows): 
  4.     for i in range(sheet.ncols): 
  5.         print(sheet.cell(r, i).value) 

4. xlwt 寫入 Excel

如果想實現將數據寫入到 Excel 中,xlwt 就很方便了

首先,使用 xlwt 的 Workbook() 方法創建一個工作簿對象

然后,使用工作簿對象的 add_sheet(sheetname) 方法新增 Sheet

  1. import xlwt 
  2.  
  3. sheetname = '第一個Sheet' 
  4.  
  5. # 創建一個工作簿對象 
  6. wb = xlwt.Workbook() 
  7.  
  8. # 添加Sheet,通過sheet名稱 
  9. sheet = wb.add_sheet(sheetname) 

接著,通過 sheet 對象的 write() 方法,按照行索引和列索引,將數據寫入到對應單元格中去

  1. # 將數據寫入到Sheet中 
  2. # 3個參數分別是:行索引(從0開始)、列索引(從0開始)、單元格的值 
  3. # 第一行第一列,寫入一個數據 
  4. # 寫入標題 
  5. for index, title in enumerate(self.titles): 
  6.     sheet.write(0, index, title) 
  7.  
  8. # 寫入值 
  9. for index_row, row_values in enumerate(self.values): 
  10.     for index_column, column_value in enumerate(row_values): 
  11.         sheet.write(index_row + 1, index_column, column_value) 

需要注意的是,最后必須調用工作簿的 save(filepath),才能在本地生成 Excel 文件

  1. # 保存文件 
  2. # 最后保存文件即可 
  3. wb.save(filepath) 

5. 進階用法

接下來,聊聊幾個常用的進階用法

1、獲取所有可見的 Sheet

在讀取 Sheet 數據時,經常需要過濾隱藏的 Sheet

當 sheet 對象的 visibility 屬性值為 0 時,代表此 Sheet 在工作簿中是顯示的;否則被隱藏了

  1. def get_all_visiable_sheets(self, wb): 
  2.     ""
  3.     獲取所有可見的sheet 
  4.     :param wb: 
  5.     :return
  6.     ""
  7.     return list(filter(lambda item: item.visibility == 0, wb.sheets())) 
  8.  
  9. # 1、獲取所有可看見的sheet 
  10. sheet_visiable = self.get_all_visiable_sheets(wb) 
  11. print('所有可見的sheet包含:', sheet_visiable) 

2、獲取 Sheet 可見行或列

某一個 Sheet 中,可能存在部分行、列被隱藏了

  1. def get_all_visiable_rows(self, sheet): 
  2.     ""
  3.     獲取某一個sheet中,可見的行 
  4.     :param sheet: 
  5.     :return
  6.     ""
  7.     result = [index for index in range(sheet.nrows) if sheet.rowinfo_map[index].hidden == 0] 
  8.     return result 
  9.  
  10. def get_all_visiable_columns(self, sheet): 
  11.     ""
  12.     獲取某一個sheet中,可見的列 
  13.     :param sheet: 
  14.     :return
  15.     ""
  16.     result = [index for index in range(sheet.ncols) if sheet.colinfo_map[index].hidden == 0] 
  17.     return result 

3、獲取單元格的樣式

以獲取單元格字體顏色和背景為例

  1. def get_cell_bg_color(self, wb, sheet, row_index, col_index): 
  2.     ""
  3.     獲取某一個單元格的背景顏色 
  4.     :param wb: 
  5.     :param sheet: 
  6.     :param row_index: 
  7.     :param col_index: 
  8.     :return
  9.     ""
  10.     xfx = sheet.cell_xf_index(row_index, col_index) 
  11.     xf = wb.xf_list[xfx] 
  12.  
  13.     # 字體顏色 
  14.     font_color = wb.font_list[xf.font_index].colour_index 
  15.     # 背景顏色 
  16.     bg_color = xf.background.pattern_colour_index 
  17.  
  18.     return font_color, bg_color 

需要注意的是,使用 xlrd 讀取單元格的樣式,打開工作簿的時候需要顯式定義 formatting_info = True,否則會拋出異常

  1. # 注意:必須設置formatting_info=True,才能正常獲取屬性 
  2. wb = xlrd.open_workbook(file_path, formatting_info=True
  3. sheet = wb.sheet_by_index(0 

6. 最后搭配使用 xlrd、xlwt,基本上能完成大部分的工作,對于一些復雜的功能,比如:復制、分割、篩選等功能,可以用上 xlutils 這個依賴庫

需要指出的是,這個組合對 xlsx 的兼容性不太好;如果需要操作 xlsx 文件,需要先轉為 xls,然后再進行

責任編輯:武曉燕 來源: AirPython
相關推薦

2020-04-21 10:45:47

PythonWordExcel

2022-06-13 09:12:04

PythonPDF代碼

2022-08-04 13:27:35

Pythonopenpyxl

2022-03-21 10:09:08

PythonExcel郵件

2025-11-10 09:14:26

PythonExcel自動化

2021-04-22 15:46:42

物聯網智能辦公IoT

2023-05-15 08:01:32

Python辦公自動化

2009-02-11 09:49:00

網絡維護網絡管理

2024-05-29 11:16:33

PythonExcel

2022-06-05 21:09:47

Python辦公自動化

2009-10-26 21:26:37

網絡運維辦公自動化

2011-08-03 17:37:05

2021-07-09 07:24:47

Python自動化辦公

2025-04-23 08:15:00

2013-01-10 15:21:09

三元食品辦公自動化IBM

2013-12-09 18:12:02

華為PTN電力配網

2021-04-23 22:44:57

Python開發辦公自動化

2021-12-28 09:24:49

Python郵件Word

2021-02-01 12:24:40

Python日志Expect

2023-10-18 13:57:17

點贊
收藏

51CTO技術棧公眾號

国产裸体歌舞团一区二区| 日本精品一区二区三区在线观看视频| 成人av在线一区二区三区| 97视频在线观看视频免费视频 | 精品欧美日韩精品| 国产精品福利一区二区| 91精品免费| 欧美videossex极品| av免费在线免费| 免费精品视频| 久久久精品日本| 成年人网站免费看| 精品欧美日韩精品| 亚洲国产精品一区二区尤物区| 国产一区喷水| 911美女片黄在线观看游戏| 男男gay无套免费视频欧美| 国产女人aaa级久久久级 | 中文字幕一区二区三区四区视频 | 欧美国产美女| 亚洲国产高清高潮精品美女| 九九热99视频| 日本乱码一区二区三区不卡| 亚洲天堂免费在线观看视频| 欧美极品一区二区| www五月婷婷| 欧美18xxxx| 欧美日韩精品电影| 青青在线视频观看| 成人在线黄色电影| 亚洲在线观看免费| 免费观看中文字幕| av在线中文| 91麻豆高清视频| 日韩国产精品视频| 色悠悠在线视频| 国产精品**亚洲精品| 欧美在线|欧美| 欧美日韩二三区| www.com毛片| 欧美 亚洲 另类 激情 另类| 中文字幕一区二区av| 日韩小视频在线| 亚洲精品国产一区黑色丝袜| 国产不卡网站| 99久久婷婷国产| 97国产精品久久| 免费在线一区二区三区| 亚洲成av人片一区二区密柚| 在线视频欧美日韩精品| 五月婷婷欧美激情| 精品72久久久久中文字幕| 精品日产卡一卡二卡麻豆| 亚洲熟妇av一区二区三区| 国产福利电影在线播放| 亚洲综合在线观看视频| 曰韩不卡视频| 国产日产一区二区| 樱桃视频在线观看一区| 亚洲中文字幕无码一区二区三区| 91蜜桃在线视频| 欧美极品视频| 久久久久久影视| 免费成人在线观看av| 午夜影院在线视频| 国产一区日韩二区欧美三区| 91最新国产视频| 国产视频手机在线观看| 国产91丝袜在线播放| 国产精品一区二区三区观看| 亚洲精品911| 丁香婷婷深情五月亚洲| 999国内精品视频在线| 亚洲成熟女性毛茸茸| 99精品久久只有精品| 任我爽在线视频精品一| 久久久资源网| 91蜜桃传媒精品久久久一区二区| 国内精品久久久久久久果冻传媒| 欧洲成人av| 国产精品区一区二区三| 亚洲免费久久| 羞羞的视频在线看| 亚洲综合精品自拍| 欧美日韩国产中文| 欧美日韩在线中文| 丁香久久综合| 日韩一级免费一区| 污片免费在线观看| 精品久久网站| 欧美精品中文字幕一区| 丁香六月婷婷综合| 捆绑调教美女网站视频一区| 99影视tv| 国产中文在线| 一区二区三区欧美久久| 妞干网在线免费视频| 国产欧美88| 精品亚洲aⅴ在线观看| 五月天免费网站| 欧美国产日本| 国产精品v日韩精品| 国产精品视频一区二区三区,| av男人天堂一区| 亚洲午夜高清视频| 中文字幕乱码中文乱码51精品| 欧美日本在线看| 性久久久久久久久久| 仙踪林久久久久久久999| 5566成人精品视频免费| 国产精品美女一区| 国产亚洲制服色| 99er在线视频| 亚洲精品毛片| 亚洲欧美日韩天堂一区二区| 日韩女优一区二区| 免费一区二区视频| 久久综合九色综合久99| 日本大片在线播放| 欧美久久久久免费| 日本xxx在线播放| 午夜精品视频| 成人黄色生活片| av播放在线| 欧美性xxxx极品hd满灌| 熟妇高潮一区二区| 综合一区av| 国产欧美最新羞羞视频在线观看| 亚洲 精品 综合 精品 自拍| 一区二区三区在线视频免费| 亚洲一区精品视频在线观看| 精品欧美久久| 欧美最猛性xxxxx免费| 狠狠综合久久av一区二区| 亚洲免费观看高清完整版在线| 九九热精品在线播放| 一区二区美女| 欧美在线视频网站| 天堂资源中文在线| 精品美女永久免费视频| 亚洲成年人在线观看| 亚洲经典一区| 96国产粉嫩美女| 91sp网站在线观看入口| 欧美怡红院视频| 欧洲美一区二区三区亚洲| 亚洲男人影院| 快播亚洲色图| 桃花岛tv亚洲品质| 亚洲图片在区色| 波多野结衣黄色网址| 国产亚洲欧美一级| 亚欧在线免费观看| 日本欧美国产| 国产综合久久久久久| 日韩免费啪啪| 欧美一级专区免费大片| 青娱乐国产在线| 国产成人精品一区二区三区四区| 国产精品自拍合集| 黑人久久a级毛片免费观看| 97久久国产精品| 嫩草在线播放| 欧美日韩一区在线观看| 狂野欧美性猛交| 激情五月婷婷综合| 日韩国产小视频| 久久免费视频66| 日本免费一区二区三区视频观看| 黑人与亚洲人色ⅹvideos | 午夜精品免费观看| 国产蜜臀av在线一区二区三区| 男人的天堂日韩| 久久久人成影片免费观看| 国产精品av一区| 成人性教育av免费网址| 日韩在线精品视频| 精品久久久免费视频| 亚洲国产日韩综合久久精品| 瑟瑟视频在线观看| 精品一二三四区| 18禁裸男晨勃露j毛免费观看| 特黄特色欧美大片| 国产区精品在线观看| 深夜国产在线播放| 亚洲欧美国产视频| 91久久精品无码一区二区| 一级精品视频在线观看宜春院| 无码精品一区二区三区在线播放| 日韩电影免费一区| 国产精品88久久久久久妇女| 日本三级久久| 成人观看高清在线观看免费| 成人观看网址| 久久激情视频免费观看| 色婷婷激情五月| 欧美日韩国产综合视频在线观看| 日韩精品在线不卡| 国产精品福利一区| yy6080午夜| 国产九色精品成人porny| 成年人观看网站| 欧美极品一区二区三区| 色中色综合成人| 欧美巨大xxxx| 91热福利电影| 国产成人精品亚洲日本在线观看| 不用播放器成人网| 国产有码在线| 亚洲精品国精品久久99热| 亚洲天堂久久久久| 欧美性猛交xxxx乱大交蜜桃| 久久久久久久久久网站| 欧美国产日韩一二三区| 丝袜熟女一区二区三区| 国内不卡的二区三区中文字幕| 成人免费在线小视频| 欧美成人高清| 伊人久久大香线蕉午夜av| 欧美日韩精品一区二区三区在线观看| 亚洲va久久久噜噜噜久久天堂| 日本欧美日韩| 欧美在线观看网站| cao在线视频| 欧美成人一二三| 秋霞午夜理伦电影在线观看| 一道本无吗dⅴd在线播放一区 | 永久免费精品影视网站| 亚洲欧美日本在线观看| 精品日韩在线观看| 99视频在线观看免费| 欧美日韩卡一卡二| 超碰在线97观看| 色综合一区二区| 日韩av免费网址| 亚洲午夜久久久久久久久久久| 中文字幕人妻一区二| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 懂色av粉嫩av浪潮av| 久久综合丝袜日本网| 日本护士做爰视频| 99re这里只有精品首页| 插我舔内射18免费视频| 成人精品国产免费网站| 在线观看欧美一区二区| 国产精品一区二区在线看| 五月六月丁香婷婷| 国产一区二区三区不卡在线观看| 欧美国产日韩另类 | 欧美日韩亚洲视频一区| 日韩免费观看一区二区| 精品毛片网大全| 国产一区二区视频免费| 欧洲精品一区二区三区在线观看| 波多野结衣绝顶大高潮| 欧美三级日韩在线| 在线观看国产精品视频| 欧美精品一二三| 精品黑人一区二区三区在线观看| 日韩精品一区二区三区视频播放| 亚洲男女视频在线观看| 精品电影一区二区| 无码精品一区二区三区在线| 亚洲欧美变态国产另类| 国产视频福利在线| www.国产一区| 七七久久电影网| 性色av一区二区三区| 在线毛片观看| 狠狠狠色丁香婷婷综合激情 | 蜜桃av噜噜一区二区三| 久久av综合| 午夜精品一区二区三区四区| 欧美jizz| 成人小视频在线观看免费| 在线综合欧美| www.色偷偷.com| 国内精品伊人久久久久av影院| 91亚洲一线产区二线产区| 成人h动漫精品| 免费观看av网站| 18成人在线视频| 国产乡下妇女做爰| 91激情五月电影| 精品国产免费无码久久久| 日韩电影免费观看中文字幕| 成年网站在线| 欧美激情性做爰免费视频| 久久青草伊人| 国产精品久久久久久av下载红粉 | 视频在线观看91| 岛国av免费在线| 91性感美女视频| 小泽玛利亚一区| 欧美日韩国内自拍| 国产精品热久久| 日韩成人小视频| 伦xxxx在线| 欧美亚洲在线播放| 97精品资源在线观看| 久久99久久99精品蜜柚传媒| 日韩一级毛片| 精品久久一二三| 精品亚洲aⅴ乱码一区二区三区| av无码一区二区三区| 国产精品二三区| 天天操天天操天天操天天| 91精品国产欧美一区二区18 | 伊人再见免费在线观看高清版 | 亚洲奶汁xxxx哺乳期| 中文国产成人精品| 91老司机福利在线| 成人黄色免费在线观看| 久久av综合| 波多野结衣综合网| 国产一区二区三区免费观看| 久久久视频6r| 欧美日韩精品在线观看| www.色亚洲| 日韩亚洲综合在线| 黑人巨大精品欧美一区二区桃花岛| 99re在线| 中文字幕一区二区三区乱码图片 | 国产天堂视频在线观看| 久久成人羞羞网站| 亚洲成人黄色av| 黑人巨大精品欧美一区二区免费 | 中文字幕亚洲精品| 91av亚洲| 激情小说网站亚洲综合网| 综合久久久久| 中文字幕日韩久久| 国产精品久久久久精k8| 亚洲午夜在线播放| 亚洲人精品午夜在线观看| 亚洲男人av| 好看的日韩精品视频在线| 欧美天堂亚洲电影院在线观看| 亚洲小视频网站| 国产精品视频免费| 91porny九色| 亚洲人成在线免费观看| 美女100%一区| 免费在线国产精品| 国产精品美女久久久浪潮软件| 制服丝袜在线第一页| 亚洲高清在线精品| 色综合久久久久久| 韩剧1988在线观看免费完整版| jazzjazz国产精品久久| 男女日批视频在线观看| 成av人片一区二区| 成人免费看片98欧美| 亚洲精品久久久久久久久久久久| av色在线观看| 精品国产一区二区三| 日韩亚洲在线| 欧美 日本 国产| 在线看不卡av| 男人影院在线观看| 亚洲精品日韩激情在线电影| 欧美国产综合| 成人免费看片载| 婷婷久久综合九色综合绿巨人| 视频在线观看你懂的| 国产va免费精品高清在线| 精品精品久久| 中文字幕一区二区在线观看视频 | 国产精品无码一区| zzijzzij亚洲日本成熟少妇| 日韩精品一区二区三区中文| 国产av麻豆mag剧集| 国产午夜亚洲精品午夜鲁丝片| 中文字幕在线观看第二页| y97精品国产97久久久久久| 日韩欧美激情电影| 黄色一级片播放| 国产精品乱码一区二区三区软件| 国产av无码专区亚洲av麻豆| 亚洲 日韩 国产第一| 郴州新闻综合频道在线直播| 中文字幕亚洲影院| 午夜精品免费在线观看| 国产三级视频在线播放线观看| 成人久久久久久久| 亚洲免费成人| 性少妇xx生活| 精品免费99久久| 成人性片免费| 欧美精品卡一卡二| 国产精品久久看| 天天操天天干天天干| 国产精品亚洲自拍| 亚洲国产免费| 国产成人免费在线观看视频| 亚洲国产精品福利| 国产精品国产三级在线观看| 黄色免费视频大全| 亚洲人成影院在线观看| 欧美性孕妇孕交|