最近家屬的工作有個頻繁操作excel的事情,我想到可以利用python的辦公自動化來解決這重復(fù)性的工作痪欲。py5分鐘咬腋,節(jié)約兩小時。
整理了思路向瓷,理清了操作步驟如下:
安裝openpyxl庫肠套;
學(xué)習(xí)python對excel的各種操作;
根據(jù)excel操作的實際需求來編碼猖任;
程序打包成exe糠排;
以下步驟面向有編程經(jīng)驗者,并且默認已安裝好了python環(huán)境超升。
首先是安裝openpyxl庫:
openpyxl入宦,是個python讀寫excel的庫。
安裝步驟就一行室琢,打開cmd命令行乾闰,利用pip管道安裝這個擴展包等待安裝成功即可。
pip install openpyxl
注意:openpyxl只能操作xlsx文件而不能操作xls文件盈滴。
插曲:我參閱了一本書和一些網(wǎng)上別人寫的文檔涯肩,發(fā)現(xiàn)有些函數(shù)是有報錯的,實際上這些版本已經(jīng)落后了巢钓,則還是找到了官方文檔(只有英文的病苗,還好我英語湊合著看),對照官方文檔上面的使用函數(shù)是正常的症汹。
官網(wǎng)地址:https://openpyxl.readthedocs.io/en/stable/tutorial.html
在openpyxl中硫朦,主要用到三個概念:Workbooks,Sheets背镇,Cells咬展。Workbook就是一個excel工作簿泽裳;Sheet是工作簿中的一張表頁;Cell就是簡單的一個格破婆。openpyxl就是圍繞著這三個概念進行的涮总,不管讀寫都是“三板斧”:打開Workbook,定位Sheet祷舀,操作Cell瀑梗。下面分讀和寫分別介紹幾個常見的方法。
寫了個最簡單的demo裳扯,實現(xiàn)了操作excel夺克。
#導(dǎo)入openpyxl庫的工作簿包和讀取工作簿包
from openpyxl import load_workbook,workbook
wb = load_workbook('function.xlsx') #讀取測試xlsx文件,這個可以是空的嚎朽,也可以有內(nèi)容
ws= wb.active #選中當(dāng)前頁铺纽,默認是第一個sheet
ws['A1'] =1#給A1單元格賦值,以下類似
ws['A2'] =2
ws['A3'] =3
ws['A4'] ='=SUM(A1:A3)'#給A4單元格填寫了excel公式哟忍,在py程序里實際上是字符串狡门,生成到excel里則是求和函數(shù)
ws['A5'] ='=MAX(A1,A3)'
ws['B1'] =0
ws['B2'] =0
wb.save('function.xlsx')
function.xlsx的結(jié)果
這個是稍微復(fù)雜一些的demo,將一個excel的內(nèi)容遍歷锅很,也可以稍作修改再寫到另一個excel中
#讀取test.xlsx的內(nèi)容其馏,遍歷放到二維數(shù)組,存儲到另外個excel中
import openpyxl
wb_t = openpyxl.load_workbook('test.xlsx')
sheets_t = wb_t.sheetnames
sheet_t = wb_t[sheets_t[0]]
data = [[]fori inrange(sheet_t.max_column)] #定義爆安,二維的空list
for row in sheet_t.rows:
for cell in row:
#print(cell.value)
data[cell.row-1].append(cell.value)
# wb_t.save('cxh_test.xlsx')
print(data)
sheet_t['A1'].value ='職位'
wb_t.save('test.xlsx')
wb = openpyxl.Workbook()
ws= wb.active
ws.title ='cxh auto_sheet'
for list in data:
ws.append(list)
wb.save('cxh_test.xlsx')
cxh_test.xlsx的結(jié)果
實際需求也就是增加和修改一些單元格叛复,這里涉及機密就略過了,知道了前面的操作步驟扔仓,實際需求就是水到渠成褐奥。
最后py打包這個環(huán)節(jié),一是為了跨平臺使用翘簇,二也是為了沒有python環(huán)境的電腦和非編程人員的使用便捷撬码。
python打包成exce也是需要額外的第三方打包工具庫。
這里使用pyinstaller版保。
1. 安裝
(1) 官網(wǎng):http://www.pyinstaller.org/
(2) pip install PyInstaller
這種安裝方法呜笑,簡單直接,而且利于后期update pyinstaller時彻犁,可以用pip update叫胁。
2. 使用
命令格式:pyinstaller [options] script [script …] | specfile
解釋一下:
(1)最簡單的情況,不做任何額外配置汞幢,直接打包驼鹅。那命令直接輸入:
pyinstaller xxx.py
這個命令也是有許多參數(shù),可以查閱官網(wǎng)進行參數(shù)上的增加。
以上谤民,就是python自動化的excel操作的步驟。