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

歡迎訪問 生活随笔!

生活随笔

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

python

python使用openpyxl操作excel总结

發布時間:2024/4/17 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python使用openpyxl操作excel总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝openpyxl

pip install openpyxl

簡單示例

from openpyxl import Workbook#創建一個工作薄對象,也就是創建一個excel文檔 wb = Workbook()#指定當前顯示(活動)的sheet對象 ws = wb.active# 給A1單元格賦值 ws['A1'] = 42# 一行添加多列數據 ws.append([1, 2, 3])# 保存excel wb.save("sample.xlsx")

?

使用openpyxl的一般流程為:創建/讀取excel文件-->選擇sheet對象-->對表單/cell進行操作-->保存excel

?

1.創建/讀取excel文件

創建excel

from openpyxl import Workbook wb = Workbook()

讀取excel

from openpyxl import load_workbook wb = load_workbook('1.xlsx')

保存excel

wb.save('filename.xlsx')

?

2.sheet表單操作

獲取sheet

#以list方式返回excel文件所有sheet名稱(->list[str,str..])
wb.sheetnames wb.get_sheet_names()

選擇sheet對象

#根據sheet名稱選取 ws = wb['sheet1'] ws = wb.get_sheet_by_name('sheet1') #選擇當前顯示,活動的sheet ws = wb.active ws = wb.get_active_sheet()

創建新的sheet

#默認插入到最后 ws = wb.create_sheet("newsheet") #插入到最開始的位置(從0開始計算) ws = wb.create_sheet("newsheet", 0)

復制一個sheet對象

source = wb.active target = wb.copy_worksheet(source)

sheet常見屬性

#sheet名稱 sheet.title #最大行和最大列 sheet.max_row sheet.max_column #行列生成器 sheet.rows #為行生成器, 里面是每一行的cell對象,由一個tuple包裹。 sheet.columns #為列生成器, 里面是每一列的cell對象,由一個tuple包裹。
可以使用list(sheet.rows)[0].value 類似方法來獲取數據,或
for row in sheet.rows:for cell in row:print(cell.value) 來遍歷值,或值生成器 sheet.values 僅遍歷值

刪除sheet

wb.remove(sheetobject) del wb['sheet'] #sheetname

sheet的其它操作

#插入行,在第7行之前插入 ws.insert_rows(7) #插入列,在第7列之前插入 ws.insert_cols(7) #刪除行列 ws.delete_rows(7) ws.delete_cols(7) #可以刪除多個 ws.delete_cols(6, 3)

?

3.單元格對象

選擇cell單元格對象

#根據名稱訪問 a1 = ws['A1'] #A列1行的單元對象 a2 = ws['a2'] #也可以小寫 #cell方法訪問 b2 = ws.cell(row=2, column=2) b3 = ws.cell(3,2) #從cell列表中返回 b3 = list(ws.rows)[2][1] b3 = list(ws.columns)[1][2]

選擇多個單元格

#切片訪問 a2_b3 = ws['a2':'b3'] 以行組成tuple返回tuple ((<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>), (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>)) #單獨字母與數字返回列與行的所有數據 b = ws['b'] #返回b列的所有cell對象 row1 = ws['1'] #返回第1行的所有cell #當然也能范圍選擇 a_e = ws['a:e'] #a-e列的cell對象

單元格屬性

#返回列 cell.column #返回行 cell.row #返回值 cell.value 注意:如果單元格是使用的公式,則值是公式而不是計算后的值 #返回單元格格式屬性 cell.number_format 默認為General格式 #單元格樣式 cell.font

更改單元格值

#直接賦值 ws['a2'] = 222 ws['a2'] = 'aaa' ws['b2'] = '=SUM(A1:A17)' #使用公式#value屬性賦值 cell.value = 222 或 ws.cell(1,2,value = 222)

移動單元格

ws.move_range("D4:F10", rows=-1, cols=2) 表示單元格D4:F10向上移動一行,右移兩列。單元格將覆蓋任何現有單元格。(最新版本的才會這個方法,使用pip list查看版本是否為最新) ws.move_range("G4:H10", rows=1, cols=1, translate=True) 移動中包含公式的自動轉換

合并與拆分單元格

#合并單元格,以最左上角寫入數據或讀取數據 ws.merge_cells('A2:D2') #拆分單元格 ws.unmerge_cells('A2:D2')

?

4.格式樣式設置

導入類

from openpyxl.styles import Font, colors, Alignment

Font類常見參數

font = Font(name='Calibri',       #字體名字size=11,  #字體大小bold=False,   #是否加粗italic=False, #斜體underline='none',  #下劃線color='FF000000')  #顏色,可以用colors中的顏色

設置字體

t_font = Font(name='Calibri', size=24, italic=True, color=colors.RED, bold=True) #給font屬性賦值font對象即可 sheet['A1'].font = t_font

對齊方式

# 設置B1中的數據垂直居中和水平居中,除了center,還可以使用right、left等等參數 sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')

設置單元格長寬

# 第2行行高 sheet.row_dimensions[2].height = 40 # C列列寬 sheet.column_dimensions['C'].width = 30

?

官方文檔參考:https://openpyxl.readthedocs.io/en/latest/

?

轉載于:https://www.cnblogs.com/fengf233/p/10880782.html

總結

以上是生活随笔為你收集整理的python使用openpyxl操作excel总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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