還是簡單一句:顧名思義,openpyxl就是一個處理excel文件的一個python庫。
openpyxl資訊
openpyxl地址傳送
openpyxl依賴jdcal以及et_xmlfile依賴庫
jdcal地址
et_xmlfile地址
openpyxl安裝
1 2 3 4 |
#pip安裝 sudo pip install openpyxl #原始碼編譯 python setup.py install |
對於如何使用pip安裝傳送pip教程,原始碼編譯安裝呢,下載路徑已經在上面了
每次編輯到關於安裝的好浪費時間,but~~
建立一個工作簿
1 |
wb = workbook() |
載入已存在excel檔案
1 2 |
filePath = "/data/alic/demo.xlsx" wb = load_workbook(filename=filePath) |
選中sheet
1 2 3 4 5 6 7 8 9 10 |
# 選擇預設的sheet ws = wb.active # 通過索引載入sheet index從0開始 ws = wb.worksheets[index] # 通過sheet名載入 感覺有問題,中文? ws = wb.get_sheet_by_name() # 這個沒有問題 ws = wb["name"] |
建立sheet
1 2 3 4 5 |
#預設插在工作簿末尾 ws = wb.create_sheet() # or # 插入在工作簿的指定位置位置 index從0開始 ws = wb.create_sheet(index) |
更改sheet的名字
1 2 |
# 新建預設的話 sheet0 sheet1 ... ws.title = "hello" |
獲取sheet的名稱
1 2 3 4 5 |
sheet_name = wb.get_sheet_names() print sheet_name # or for sheet in wb: print sheet.title |
單元格操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 獲取一個單元格的value value = ws['B2'] # or value = ws.cell('B2') # or 非常推薦 遍歷都很方便 value = ws.cell(row=1,column=2) #獲取多個單元格 cells = ws['A1':'E4'] #為一個單元格賦值 ws['B2'] = "alic" # or ws.cell('B2') = "hello" # or 非常推薦 遍歷都很方便 ws.cell(row=1,column=2) = "value" # 遍歷多個單元格 for row in ws.iter_rows('A1:D2'): for cell in row: print cell |
獲取當前工作表的已有資料的物件
1 2 3 4 5 |
# 所有行 ws.rows # 所有列 ws.columns |
獲取當前工作表的資料長度與寬度
1 2 3 4 5 |
row_length = len(ws.rows) cloumn_length = len(ws.columns) # 推薦 centOS上面的會報錯 row-length = len(list(ws.rows)) cloumn_length = len(list(ws.rows)) |
儲存檔案
1 2 3 4 5 |
# 注意要是載入進來的路徑與儲存的路徑一致檔案將會被覆蓋 ws.save(path) # 也可以將檔案作為模板儲存 as_template預設為False wb.save('document_template.xltx', as_template=True) |
簡單的樣式處理
1 2 3 4 5 6 7 |
# 文字對齊方式 align = Alignment(horizontal='center', vertical='center') ws.cell(row=deng_lu_taskRow, column=index + 3).alignment = align # 字型大小 font = Font(size=10) ws.cell(row=taskRow, column=column).font = font |