python筆記8 - excel操作

来源:http://www.cnblogs.com/lhly/archive/2017/07/08/7136413.html
-Advertisement-
Play Games

前提: python操作excel需要使用的模塊有xlrd、xlwt、xlutils。對excel進行讀、寫、更新操作。操作excel時需要先導入這些模塊,demo如下: excel-讀操作知識點: excel數據格式如下: excel - 寫操作知識點: excel寫入 新的excel後,數據格式 ...


 前提:

python操作excel需要使用的模塊有xlrd、xlwt、xlutils。對excel進行讀、寫、更新操作。操作excel時需要先導入這些模塊,demo如下:

excel-讀操作知識點:

 1 import xlrd
 2 '''
 3 讀取 excel的操作步驟如下:
 4 1. 打開excel,打開的excel必須存在
 5 2. 獲取sheet對象
 6 3. 對excel進行操作:
 7     獲取excel的總行數、總列數、讀取excel每一行的數據、讀取excel每一列的數據、獲取某個單元格的值
 8 '''
 9 #打開excel,打開的excel必須存在,返回book對象
10 book = xlrd.open_workbook('students.xlsx')
11 #通過索引獲取sheet對象
12 sheet = book.sheet_by_index(0)
13 #有多個sheet頁時可以通過sheet的名稱來獲取sheet對象
14 sheet1 = book.sheet_by_name('Sheet1')
15 
16 #獲取excel的總行數,
17 rows = sheet.nrows
18 #獲取excel的總列數
19 cols = sheet.ncols
20 #獲取excel第2行的數據,返回結果為list:[2.0, 'b', 'women']
21 row_value = sheet.row_values(2)
22 #獲取excel第1列的數據,返回結果為list:['name', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '小白', '小黑']
23 col_values = sheet.col_values(1)
24 #獲取單元格第8行第1列的數據,返回結果為text: text:'小白'
25 cell_value = sheet.cell(8, 1)
26 #將text類型的結果轉換為str類型:小白
27 cell_str = sheet.cell(8, 1).value
註意:獲取每行、每列、某個單元格的值時,註意行、列的值要存在,否則會報錯:list index out of range
excel - 讀取excel小案例:
 1 import xlrd
 2 '''
 3 讀取excel的數據,讀取數據的列固定,迴圈讀取每行數據,讀取後的數據格式如下:
 4 [
 5 {'name':xxx,'sex':xxx,'id':1},
 6 {'name':xxx,'sex':xxx,'id':1},
 7 .......
 8 ]
 9 '''
10 def readExcel():
11     try:
12         #若輸入的excel不存在,則打開excel報錯
13         book = xlrd.open_workbook('students.xlsx')
14     except Exception as e:
15         print('error msg:', e)
16     else:
17         sheet = book.sheet_by_index(0)
18         #獲取excel的總行數
19         rows = sheet.nrows
20         stu_list = []
21         #迴圈讀取每行數據,第0行是表頭信息,所以從第1行讀取數據
22         for row in range(1, rows):
23             stu = {}
24             #獲取第row行的第0列所有數據
25             id = sheet.cell(row, 0).value
26             name = sheet.cell(row, 1).value
27             sex = sheet.cell(row, 2).value
28             #將id、name、sex添加到字典,若元素不存在則新增,否則是更新操作
29             stu['id'] = id
30             stu['name'] = name
31             stu['sex'] = sex
32             stu_list.append(stu)
33         print(stu_list)
34 
35 if __name__ == '__main__':
36     readExcel()

excel數據格式如下:

 excel - 寫操作知識點:

 1 import xlwt
 2 '''
 3 寫 excel的操作步驟如下:
 4 1. 打開excel,打開不存在的excel,若打開已存在的excel,進行寫操作,寫入的數據會覆蓋以前的數據
 5 2. 獲取sheet對象並指定sheet的名稱
 6 3. 對excel進行操作:
 7     寫入excel、保存excel
 8 '''
 9 #打開excel創建book對象
10 book = xlwt.Workbook()
11 #創建sheet指定sheet名稱
12 sheet = book.add_sheet('stu2')
13 #寫入excel數據,第n行第n列寫入某個值,寫入的數據類型為str
14 sheet.write(0, 0, '編號')
15 sheet.write(0, 1, '姓名')
16 sheet.write(0, 2, '年齡')
17 #保存excel,保存的尾碼必須是xls
18 book.save('studet.xls')

excel寫入 新的excel後,數據格式如下:

excel操作 已存在的excel,進行寫操作後的 excel格式如下:

 ----> 

excel - 寫excel小案例:
 1 import xlwt
 2 '''
 3 將list數據:
 4 [{'name': '小白', 'id': 1.0, 'sex': '男'},
 5     {'name': '小花', 'id': 2.0, 'sex': '女'},
 6     {'name': '小黑', 'id': 3.0, 'sex': '男'},
 7      {'name': '小茹', 'id': 4.0, 'sex': '女'},
 8       {'name': '小小', 'id': 5.0, 'sex': '男'}]
 9 寫入excel,title信息為:編號、姓名、性別
10 '''
11 def writeExcel():
12     book = xlwt.Workbook()
13     sheet = book.add_sheet('stu')
14     titles = ['編號', '姓名', '性別']
15     #迴圈讀取titles的長度,col的值為:0,1,2,並將title值寫入excel
16     for title_col in range(len(titles)):
17         #title 寫入excel的第0行的第col列,寫入titles[col]值
18         sheet.write(0, title_col, titles[title_col])
19     students_list = [{'name': '小白', 'id': 1.0, 'sex': ''},{'name': '小花', 'id': 2.0, 'sex': ''},{'name': '小黑', 'id': 3.0, 'sex': ''},{'name': '小茹', 'id': 4.0, 'sex': ''},{'name': '小小', 'id': 5.0, 'sex': ''}]
20     for stu_row in range(len(students_list)):
21         #迴圈讀取student_list的長度,從0開始,寫入excel時從第1行開始寫入數據
22         #寫入excel的數據是從list里進行取值,獲取list的每個元素,返回字典,然後通過字典的key獲取value
23         sheet.write(stu_row+1, 0, students_list[stu_row]['id'])
24         sheet.write(stu_row+1, 1, students_list[stu_row]['name'])
25         sheet.write(stu_row+1, 2, students_list[stu_row]['sex'])
26     book.save('student.xls')
27 if __name__ == '__main__':
28     writeExcel()

excel數據格式如下:

 excel- 更新操作知識點:

 1 import xlrd
 2 from xlutils.copy import copy
 3 '''
 4 更新excel操作:
 5 1. 打開excel,更新的excel必須存在
 6 2. 複製一個新的excel,使用xlutils模塊中的copy方法
 7 3. 更新excel內的數據
 8 4. 保存更新後的excel數據,以前的excel數據不會更改
 9 '''
10 from xlutils.copy import copy
11 #打開excel
12 book = xlrd.open_workbook('student.xlsx')
13 #複製一個新的excel
14 new_book = copy(book)
15 #查看某個對象下的所有方法
16 #print(dir(new_book))
17 #獲取新excel的sheet對象
18 sheet = new_book.get_sheet(0)
19 #新增一列數據
20 sheet.write(0, 3, '更新')
21 #更新第4行第1列的值,將其修改為'郭靜',修改的數據類型為str
22 sheet.write(4, 1, '郭靜')
23 #保存更改後的excel,以前的excel數據不更改
24 new_book.save('student.xls')

 以上為excel簡單操作~~~~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JSP的本質是Servlet源程式 每個JSP頁面在第一次被訪問時,JSP引擎將它翻譯成一個Servlet源程式,接著再把這個Serlvet源程式編譯成Servlet的class類文件。 然後再由Web容器(Servlet引擎)像調用普通Servlet程式一樣的方式來裝載和解釋執行這個Servlet ...
  • 一、簡介 subprocess最早在2.4版本引入。用來生成子進程,並可以通過管道連接他們的輸入/輸出/錯誤,以及獲得他們的返回值。 subprocess用來替換多個舊模塊和函數: os.system os.spawn* os.popen* popen2.* commands.* 運行python的 ...
  • 學了一段時間flask,可是一直沒有做過部署, 於是想著怎麼部署呢, 想想,先吧服務給搞通吧,於是呢 就先想著去吧服務給搞起來,這裡選擇的是Flask+uwsgi+Nginx+Ubuntu, Python選擇的是2.7.2這個是Ubuntu系統自帶的學起來感覺還是簡單的 不用去軟連,目前自己的fla ...
  • 直接輸出系統命令到屏幕,該方法獲取的命令返回值不可被賦值給變數,輸出結果受編碼影響會亂碼: 將執行獲取的系統命令存入記憶體,再將記憶體中的結果讀取出來輸出到屏幕,不會亂碼: 在執行文件所在目錄下創建文件夾 ...
  • pb_ds庫之hash 最近在做hash的模板題,自己手打的的hash代碼長還容易出錯。 但STL中有一個pb_ds庫,裡面的hash函數和手打的hash速度差不多,比STL中的map快多了。 與大家分享一下,不足之處還請各位神犇指出和補充。 本文只是簡略地介紹此函數在hash中的應用,若想深入研究 ...
  • 一、什麼是爬蟲 首先簡單的理解一下爬蟲。即請求網站並且提取自己所需的數據的一個過程。至於怎麼爬如何爬,將是後面進行學習的內容,暫且不必深究。通過我們的程式,可以代替我們向伺服器發送請求,然後進行批量、大量的數據的下載。 二、爬蟲的基本流程 三、request請求包含什麼 當我們通過瀏覽器向伺服器發送 ...
  • 1 電腦常識 1.1 軟體開發 1.1.1 軟體 一系列按照特定順序組織的電腦數據和指令的集合。 常用的軟體: 系統軟體: DOS,Windows,Linux等。 應用軟體: 掃雷,迅雷,QQ等。 系統軟體: DOS,Windows,Linux等。 應用軟體: 掃雷,迅雷,QQ等。 DOS,Wi ...
  • 原創作品,可以轉載,但是請標註出處地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1、Calendar概述 Java官方推薦使用Calendar來替換Date的使用,Calendar與Date之間可以自由的進行轉換,轉換的紐帶是time,使用Cale ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...