python12歲_12歲。Python操作Excel,12Python,excel

excel在Python中的應用

存測試數據

有的時候大批量的數據,存到txt文件里顯然不是最佳的方式,我們可以存到excel文件里面,第一方便我們存儲數據和做數據,一方面方便我們讀取數據,比較明朗。測試的時候就從數據庫中讀取出來。

存測試結果

可以批量把結果存到excel中,也比較好整理數據,比txt方便。

excel庫

python中有好幾個和excel操作相關的模塊。

xlrd庫:從excel中讀取數據。支持xls,xlsx。

xlwt庫:對excel進行修改操作。不支持對xlsx格式的修改。

xlutils:在xlwt和xlrd中,對一個已存在的文件進行修改。

openpyxl:主要針對xlsx格式的excel文件進行讀取和編輯。

官方解釋:

openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.

網址:

http://www/python-excel.org/

或直接pip安裝:

pip3 install openpyxl

離線方式安裝:

Excel 中三大對象:

WorkBook

Sheet

Cell

此外記住row:行;column:列。

在excel中,主要的操作是在sheet中對數據進行讀、寫、修改的操作。

操作流程:

打開/創建一個excel文件,生成一個工作簿(WorkBook)對象。

獲取某個表單(sheet)對象。

在表單對象中的單元格(cell)中讀、寫、修改數據。

openpyxl - 常用讀操作

from openpyxl import load_workbook #加載load_workbook函數

wb=load_workbook("sample.xlsx") #打開一個已經存在的excel文件

sh=wb.get_sheet_by_name("sheet1") #打開某個表單

rows=sh.max_row #獲取總行數

columns=sh.max_column #獲取總列數

cl=sh.cell(row=3,column=7).value #獲取指定的(第3行,第7列)的單元格值

sh.cell(row=1,column=1).value="hello" #修改某個值

wb.save("hello.xlsx") #保存workbook,這樣才可以保存剛剛寫入的值。

以下嘗試進行excel數據讀取:

from openpyxl import load_workbook

path="C:/Users/Hello/Desktop/temp/demo.xlsx"

#1.打開工作簿

wb=load_workbook(path)

#2.定位到所要操作的表單

sheet_obj=wb.get_sheet_by_name("lemon")

#3.讀取數據,索引從1,1開始

result=sheet_obj.cell(1,2).value

print(result)

D:\Python\python.exe D:/Work/Tools/python_workspace/python_2017/class_excel/test_1.py

D:/Work/Tools/python_workspace/python_2017/class_excel/test_1.py:9: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).

sheet_obj=wb.get_sheet_by_name("lemon")

B2

可以看到,讀取出demo.xlsx中lemon頁(1,2)單元格數據為B2。

更新單元格值:

#4.修改數據,更新值

sheet_obj.cell(1,2).value="B2_2" #更新第一行第二列的單元格值

sheet_obj.cell(4,8).value="test" #更新第四行第八列的單元格值

wb.save("C:/Users/Hello/Desktop/temp/demo_1.xlsx")

#更新數據后,記得保存文件為另外的名字,類似于手動另存為。

獲取行數與列數:

#5 獲取行數與列數(這里獲取到的是具有數據的行與列,不會獲取到空行和空列):

row=sheet_obj.max_row

column=sheet_obj.max_column

print(row,column)

openpyxl - 常用寫操作

from openpyxl import Workbook 加載Workbook函數

wb=Workbook("hello.xlsx") #創建一個新的excel對象

sh_new=wb.create_sheet("新建的sheet") #創建一個新的sheet

wb.save("hello.xlsx") #保存當前workbook

#再次打開workbook才能對值進行修改,此處操作略

sh.cell(row=1,column=1).value=("hello") #修改指定單元格值

wb.save("hello.xlsx") #保存當前workbook中所有的修改

注意

: openpyxl中列和行的起始標識是1,但是別的操作數據的未必如此哦!

__author__ = 'Hello'

from openpyxl import Workbook #加載Workbook函數

wb=Workbook("hello.xlsx") #創建一個新的excel對象

sh_new=wb.create_sheet("sh_0624") #創建一個新的sheet

wb.save("hello.xlsx") #保存當前workbook

#再次打開workbook才能對值進行修改

from openpyxl import load_workbook

wb=load_workbook("hello.xlsx")

sheet_obj=wb.get_sheet_by_name("sh_0624")

sheet_obj.cell(row=1,column=1).value=("sh_0624") #修改指定單元格值

wb.save("hello.xlsx") #保存當前workbook中所有的修改

小練習:循環讀取excel表格中第一列的數據。

__author__ = 'Hello'

from openpyxl import Workbook,load_workbook

path="C:/Users/Hello/Desktop/temp/test1.xlsx"

wb=load_workbook(path)

sheet_obj=wb.get_sheet_by_name("Sheet1")

row=sheet_obj.max_row

column=sheet_obj.max_column

list=[]

for i in range(1,row+1):

result=sheet_obj.cell(i,1).value

#print(result)

list.append(result)

print(list)

D:\Python\python.exe D:/Work/Tools/python_workspace/python_2017/class_excel/test_3.py

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

D:/Work/Tools/python_workspace/python_2017/class_excel/test_3.py:7: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).

range(0, 5)

sheet_obj=wb.get_sheet_by_name("Sheet1")

Process finished with exit code

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272868.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272868.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272868.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么叫工作到位?很深刻!

1、匯報工作說結果不要告訴老板工作過程多艱辛,你多么不容易!老板不傻,否則做不到今天。舉重若輕的人老板最喜歡,一定要把結果給老板,結果思維是第一思維。2、請示工作說方案不要讓老板做問答題,而是要讓老…

react 給一個引用的組件添加新屬性_高階組件在React中的應用

高階組件的定義接受React組件作為輸入,輸出一個新的React組件。概念源自于高階函數,將函數作為參數,或者輸出一個函數,如map,reduce,sort。 用haskell的函數簽名來表示: hocFactory:: W: React.…

雜想 · 警醒

今天無意間看到CSDN上一位大牛師姐的博客,真的是好驚訝啊!很多時候總是太過自以為是,以為自己做不到的事情別人也很難做到。恰恰相反,成功總是伴隨那些謙遜、努力、認真的人的!曾幾何時,自己或許也是一個認…

好好的活,簡簡單單過!

生命,每個人只有一次,或長或短;生活,每個人都在繼續,或悲或歡;人生,每個人都在旅途,或起或伏。人無完人,事無完美,有些小人,你不須計較&#xff0…

SQL Server 中創建數據庫、更改主文件組示例

以下示例在 SQL Server 實例上創建了一個數據庫。該數據庫包括一個主數據文件、一個用戶定義文件組和一個日志文件。主數據文件在主文件組中,而用戶定義文件組包含兩個次要數據文件。ALTER DATABASE 語句將用戶定義文件組指定為默認文件組。然后通過指定用戶定義文件…

lunixs 退出mysql_MySQL的基本操作

1、數據庫登錄格式:mysql -h主機地址 -u用戶名 -p用戶密碼 -P端口 -D數據庫 -e “SQL內容”[rootwulaoer ~]# mysql -uroot -p2、修改密碼格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼[rootwulaoer ~]# mysqladmin -uroot password 123456注&…

交際中你所不知道的說話的12個技巧!

1.“有一說一”和“自以為是”不同,別把粗魯當成真性情與 他人相處,要遵循一個基本原則:己所不欲,勿施于人。你可以真摯地描述自己的感受,前提是不要帶有攻擊性,至于對他人做出評價和判斷,則需要…

寬客的人amp;amp;事件映射

看完《寬客》這本書,敘事介紹20世紀華爾街對沖基金、股票、投資者依賴股市從直覺交易數學家的早期演化、物理學家用數學模型開發過程中的交易,這些進入金融數學家、物理學家依靠大數據分析、稍縱即逝的交易機會來買入賣出;同一時候找出交易模…

社交中的黃金法則,你要細細體會品味

1,不要急著用你的嘴,來為你的眼睛辯護什么。因為天知道你的嘴說出什么來。2,假如有人朝你扔石頭,就收起來。因為那會是你日后建高樓的基石。3,能忍則忍,忍不了就改變,改變不了就認了哇。4&#…

Jsp筆記(1)

1. jsp頁面中出現中文亂碼怎么解決&#xff1f; 1 <% page contentType"text/html; charsetGB2312"%> 2 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> 用上面這兩行代碼去替換自動生成的代碼&#…

這些略帶幽默句子,笑的同時多感悟一下吧(收好)

1、窮&#xff0c;并不可怕&#xff0c;我怕窮著窮著就習慣了。2、世界上唯一不用努力&#xff0c;就能得到的只有年齡。3、我是你轉身就忘的路人甲&#xff0c;憑什么陪你蹉跎年華到天涯&#xff1f;4、世界上最快樂的事情就是吃&#xff0c;第二快樂的是待會再吃。5、琴棋書畫…

java 異常機制_深入理解Java異常處理機制

一、引子try…catch…finally恐怕是大家再熟悉不過的語句了&#xff0c;而且感覺用起來也是很簡單&#xff0c;邏輯上似乎也是很容易理解。不過&#xff0c;我親自體驗的“教訓”告訴我&#xff0c;這個東西可不是想象中的那么簡單、聽話。不信&#xff1f;那你看看下面的代碼&…

ThreadLocal http://blog.jobbole.com/20400/

d轉載于:https://www.cnblogs.com/hansongjiang/p/4875332.html

做人:失信是最大的破產!

一個人最大的破產是信用的破產&#xff01;哪怕你一無所有&#xff0c;但只要信用還在&#xff0c;就還有翻身的本金。保護好信用&#xff0c;珍惜別人給你的每一次信任&#xff01;因為有時候我們只有一次機會&#xff01;朋友有時候就像鈔票&#xff0c;有真也有假。我們需要…

c#和WIN32 調用

作者&#xff1a;劉鐵猛日期&#xff1a;2005-12-20關鍵字&#xff1a;C# .NET Win32 API版權聲明:本文章受知識產權法保護&#xff0c;如果閣下想轉載,在轉載的時候煩勞閣下連同在下的姓名一起轉載,并向bladeytom.com發一個Mail,我很想知道我的文章都去哪里了.謝謝.小序Win32 …

【干貨】微信公眾號運營必備工具(完整版)

做微信公眾號運營最基本的要素有兩點&#xff1a;一是內容要強大&#xff08;內&#xff09;&#xff0c;二是排版要美觀&#xff08;外&#xff09;。做好前者&#xff0c;你需要有充足的知識儲備以及精彩獨到的文筆作為支撐&#xff0c;而做好后者則相對簡單許多&#xff0c;…

java定時線程池_java 定時器線程池(ScheduledThreadPoolExecutor)的實現

前言定時器線程池提供了定時執行任務的能力&#xff0c;即可以延遲執行&#xff0c;可以周期性執行。但定時器線程池也還是線程池&#xff0c;最底層實現還是ThreadPoolExecutor&#xff0c;可以參考我的另外一篇文章多線程–精通ThreadPoolExecutor。特點說明1.構造函數public…

iOS 關于關鍵字高亮

- (NSMutableAttributedString *)colorStr: (NSString *)originalStr // originalStr : 需要高亮傳入的字符串 { NSMutableAttributedString *dataStr [[[NSMutableAttributedString alloc] initWithString:originalStr] autorelease]; for (int i 0; i < originalStr.l…

成功,要“借力”,不要“盡力”(深刻!)

01每個人都喜歡成功&#xff0c;卻又時常感覺自己力不從心一個小男孩在院子里搬一塊石頭&#xff0c;父親在旁邊鼓勵&#xff1a;“孩子&#xff0c;只要你全力以赴&#xff0c;一定搬得起來&#xff01;”但是石頭太重&#xff0c;最終孩子也沒能搬起來。他告訴父親&#xff1…

java 網站開發實例_完整的javaweb項目

【實例簡介】主要功能有以下幾個&#xff1a;1.用戶注冊 2.用戶登錄 3.用戶列表展示 4.用戶信息修改 5.用戶信息刪除【實例截圖】【核心代碼】javaweb└── javaweb├── src│ └── com│ ├── dao│ │ ├── UserDaoImpl.java│ │ └── UserDao.java│…