日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python对excel增删改查_Python之Excel 优雅操作手法 精选

發布時間:2023/12/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python对excel增删改查_Python之Excel 优雅操作手法 精选 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

一直想寫這一篇,卻又一直被事情拖著。

我帶的一個項目團隊正好進行到這一塊兒了,正好,將這事兒辦了,以后要用的時候也不用到處找。

半點不求人。

慢慢看,優雅的操作都在后頭

Tips:當下2020年12月,文中所有代碼都親測過。如果哪天不能用了,便是模塊進行了改動。

Excel簡介

先來簡單了解一下Excel,方便我們后期操作:

Excel文件三個對象

workbook: 工作簿,一個excel文件包含多個sheet。

sheet:工作表,一個workbook有多個,表名識別,如“sheet1”,“sheet2”等。

cell: 單元格,存儲數據對象1

2

3

基本操作

基本操作網上一找一堆,但是我既然要做這么一份可以在收藏夾吃灰的工具博客,那就需要囊括這些基礎。

但是我和網上其他博客又有所不同的側重,看下去你就知道了。

如果功底扎實,你可以將Excel理解為一個簡單的數據庫,也可以看做一個vector。

模塊導入:import openpyxl

空手套白狼,創建Excel文件:

wb = openpyxl.Workbook()#此處可以賦予讀寫權限:write_only=True,無法讀寫

wb.save('test.xlsx')#記得保存,否則一切成空

wb.close() #記得有開有關1

2

3

不過這個要慎用,這個會覆蓋原有同名Excel。

打開一個現有的Excel:

#操作手法1

wb = openpyxl.open('test.xlsx')

#操作手法2

wb2 = openpyxl.load_workbook('test.xlsx')1

2

3

4

5

就像數據庫一樣,多個句柄可以同時存在(wb和wb2可以同時存在)。

如果你覺得這樣并沒有什么不妥,那也正常;

如果你覺得有什么不妥,但是說不出來,那也正常;

如果你覺得有什么不妥,也能說得出來,但是并不會解決這個問題,那也正常;

如果你能指出來并且進行妥善處理,那也可以理解。

反正我都要跟你們說怎么辦,不知道的現在都知道了:不是你記憶中的單例模式,但適用的程度,更勝一籌

基本讀寫操作:

ws = wb.active

#你可以這樣進行操作

ws['C4'] = 'A4'

#也可以這樣操作

ws.cell(3,4,'aa')1

2

3

4

5

6

7

Tips:增刪查改,本文只講“增查”,刪改還請諸君自行領悟。

基本頁操作(sheet)

上面的操作默認都是在sheet1上進行,而一個Excel卻經常會要用到不同的頁,就像一個數據庫里邊還有不同的表呢。

創建sheet

wb = openpyxl.open('test.xlsx')

cs = wb.create_sheet("test_sheet0",0)# 頁名、頁位置(如果頁名重復了,會被自動改名)

wb.save('test.xlsx')

wb.close()1

2

3

4

獲取sheet的操作權限

sheet = wb['頁名']#不知道名字用print(wb.sheetnames)1

修改sheet名字

sheet.title = '新名字'1

增查

ws['A3'] = 'a'

ws.cell(1,3,'a')1

2

讀寫表

獲取行列數

rows=ws.max_row #獲取行數

cols=ws.max_column #獲取列數1

2

逐列/逐行 寫

逐列

示例:

import openpyxl

wb = openpyxl.open('1.xlsx')

ws = wb.active

A = [1,2,3,4,5,6,7,8,9]

for i,j in zip(range(4,9),A): # 兩種方式,看你喜歡那種咯(我喜歡哪種就不用多說了吧,插一列我還要去數是哪一列?) ws['D'+str(i)] = j #ws.cell(i,4,j)

wb.save('1.xlsx')

wb.close()1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

代碼釋義

待寫入的列表

for i,j in zip(range(起始位置),列表): ws[列名+str(i)] = j #ws.cell(i,第幾列,j)1

2

3

4

5

逐行

這里又和上面有點小不同

A = [1,2,3,4,5,6,7,8,9]

for i,j in zip(range(4,9),A): # 你要是連自己要寫到哪一列都不知道那我就不說什么了 ws.cell(5,i,j)1

2

3

4

5

往尾行寫入

ws.append([‘This is A1’, ‘This is B1’, ‘This is C1’])

ws.append({‘A’ : ‘This is A1’, ‘C’ : ‘This is C1’})

ws.append({1 : ‘This is A1’, 3 : ‘This is C1’})1

2

3

逐列/行 讀

這將是本篇中最優雅的部分了

score_list = [i.value for i in ws['B'][1:]]

score_list2 = [i.value for i in ws['A:K'][1]]1

2

有的小伙伴想說row和column函數是吧,有我這優雅嗎?有我這自由嗎?

(其實全篇我就是為了寫這兩行)

還有其他需要了解的操作嗎?

如果有,打在評論區,我來補上。

文章來源: lion-wu.blog.csdn.net,作者:看,未來,版權歸原作者所有,如需轉載,請聯系作者。

原文鏈接:lion-wu.blog.csdn.net/article/details/111061022

總結

以上是生活随笔為你收集整理的python对excel增删改查_Python之Excel 优雅操作手法 精选的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。