本篇文章給大家分享的是有關(guān)python中如何對excel進(jìn)行操作,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)頁設(shè)計,高端網(wǎng)站設(shè)計,廣告投放平臺等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10多年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破超過千家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.安裝
pip install openpyxl
pillow:在文件中需要使用images (jpeg, png, bmp,...)時,需要安裝pillow庫。
注意:寫操作時請關(guān)閉需要操作的excel文件,否則寫不成功
加載xlsx操作內(nèi)容
加載外部excel的xlsx步驟:
加載xlsx文件,獲得該文件的句柄,為workbook
from openpyxl import load_workbook wb2 = load_workbook('test.xlsx') print wb2.get_sheet_names() # ['Sheet2', 'New Title', 'Sheet1']
在內(nèi)存中新建workbook
創(chuàng)建 workbook
開始使用openpyxl,沒有必要在文件系統(tǒng)上創(chuàng)建一個文件。
只需要導(dǎo)入Workbook類并開始使用它??梢园褀ordbook想象成一個excel文件。
from openpyxl import Workbook wb = Workbook() workbook創(chuàng)建后至少至少要創(chuàng)建一個worksheet。使用 openpyxl.workbook.Workbook.active() ws = wb.active
該方法使用了_active_sheet_index屬性, 默認(rèn)會設(shè)置0
創(chuàng)建worksheet
使用 openpyxl.workbook.Workbook.create_sheet() 創(chuàng)建新的worksheet
ws1 = wb.create_sheet("new_sheet_1") # 新建sheet,插入到最后(默認(rèn)) ws2 = wb.create_sheet("new_sheet_2", 0) # 插入到最開始的位置
指定worksheet的名稱
不指定sheet名稱時,按照sheet,sheet1,sheet2自動增長
ws3 = wb.create_sheet()
自定義worksheet名稱,通過title屬性指定名稱,設(shè)置了sheet的名稱
ws3.title = "new_sheet_3"
輸出wb現(xiàn)在所有的sheetname查看
通過 openpyxl.workbook.Workbook.sheetnames()
輸出wb現(xiàn)在所有的sheetname
print wb.get_sheet_names() print(wb.sheetnames)
循環(huán)
for sheet in wb: print(sheet.title)
指定worksheet tab按鈕的顏色
新建的sheet tab顏色為白色,可以另外指定sheet tab按鈕的顏色
ws3.sheet_properties.tabColor = "1072BA"
激活某個worksheet
通過worksheet名稱激活某個sheet使用
名稱看成workbook中的一個key
ws3 = wb["new_sheet_3"]
通過 _active_sheet_index 激活某個sheet使用
wb._active_sheet_index = 1 # 獲取第二個sheet
創(chuàng)建worksheet副本
使用 openpyxl.workbook.Workbook.copy_worksheet() 創(chuàng)建worksheet副本
source = wb.active target = wb.copy_worksheet(source)
只能復(fù)制cell和style。不能復(fù)制工作表之間的工作簿。
操作單元格
當(dāng)worksheet在內(nèi)存中被創(chuàng)建時,是沒有包含cells的,cells是在首次訪問時創(chuàng)建
單元格可以看作是worksheet的key,通過key去訪問單元格中的數(shù)據(jù)
c = ws['A3'] # 訪問單元格,不存在則會自動創(chuàng)建一個 print c.value ws['A4'] = 'a4 value' # 指定單元格的值 print ws['A4'].value d = ws.cell(row=4, column=2, value='通過cell指定') # 通過row column數(shù)字指定 print d.value
循環(huán)在內(nèi)存中創(chuàng)建cells
不用指定其值也可以在內(nèi)存中創(chuàng)建
for i in range(1, 10): for j in range(1, 10): ws.cell(row=i, column=j)
通過切片Ranges指定許多cells
cell_range = ws['A1':'C2']
也可以Ranges rows 或者columns
print ws['C'] print ws['C:D'] print ws[10] print ws[5:10]
也可以使用iter_rows() 指定行->行,截止列
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2): for c in row: print(c) iter_cols() 指定列->列,截止行 for row in ws.iter_rows(min_row=1, max_col=3, max_row=2): for c in row: print(c)
遍歷所有文件的行或列
ws['C9'] = 'hello world' tuple(ws.rows) # 轉(zhuǎn)化成tuple方便for in操作 tuple(ws.columns)
保存文件
wb = Workbook() wb.save("assets/sample.xlsx")
此操作將覆蓋現(xiàn)有的文件沒有警告。
所有的操作都需要保存到excel才能看見
保存為模板
指定屬性 as_template=True ,就可以將文檔保存為模板.xltx
wb = load_workbook('document.xlsx') wb.template = True wb.save('document_template.xltx')
或者將該屬性設(shè)置為False(默認(rèn)),另存為一個文檔:
wb = load_workbook('document_template.xltx') wb.template = False wb.save('document.xlsx', as_template=False)
使用公式
wb = load\_workbook\('assets/sample.xlsx'\) ws = wb.active ws\["A5"\] = "=SUM\(2, 1\)" wb.save\("assets/sample.xlsx"\)
以上就是python中如何對excel進(jìn)行操作,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。