基於Python的Excel處理工具

張巨集倫發表於2019-03-04

1 專案描述

為了減輕妹子工作中處理Excel的辛苦,用python寫了幾個處理xlsx的程式碼,分別完成一些獨立的任務,如根據考勤記錄判斷每天未來、遲到、早退的名單,實現兩個複雜xlsx檔案的單元格對比,等等。但妹子畢竟是文科生,直接提供py程式碼並且要求在命令列中呼叫,還是極度的不友好。所以這次希望能夠完善一下,主要實現三個目標:功能整合、提供GUI、打包成exe。

仍舊使用python,經過一番調研決定使用pyqt開發GUI。

2 安裝

我的本本是mac,一直以來也覺得mac(或者linux)比windows更適合於開發,所以這次的程式碼工作依舊在mac os上進行。

為了使用pyqt,需要在mac上具備這些條件:

  • Xcode:如果系統沒有自帶,那就裝一個吧,mac os專屬的IDLE;
  • Qt:UI開發工具;
  • SIP:將C++和python連線;
  • PyQt:將python和qt連線。

2.1 Xcode

這個不用多說了,用過Xcode開發過的人都應該聽說過,沒有的話裝一個即可。

2.2 Qt

Qt官網上下載安裝即可,如果不清楚使用哪一個,可以考慮我的選擇

2.3 SIP

下載SIP,這是我的選擇

下載完畢後解壓並在命令列中進入該目錄,執行以下程式碼。

cd sip-4.16.8/
python configure.py
make 
sudo make install複製程式碼

2.4 PyQt4

當然現在pyqt最新的版本應該是5點幾了,不過我的需求應該pyqt4就可以滿足。

下載pyqt4,這是我的選擇

下載完畢後解壓並在命令列中進入該目錄,執行一下程式碼。

cd PyQt-mac-gpl-4.11.4/
python configure.py
make
sudo make install複製程式碼

2.5 參考

完成以上四個步驟,便可以在mac os中使用pyqt4了(當然,你還得裝了python),進入python然後試試import PyQt4吧,如果能成功匯入說明一切順利。

其他在mac os上安裝pyqt4的參考資料:

blog.csdn.net/watsy/artic…

www.noktec.be/python/how-…

3 開發

我的專案託管於Github,example資料夾裡面包含了一些pyqt4的教程例子,My_dear.py是最終的程式程式碼,整合了考勤檔案處理和Excel表格對比兩個功能。介面看起來大概是這樣(介面求不吐槽,畢竟不是產品,不用在乎設計,功能實現就可以啦!),左邊的列表裡的兩項即對應不同的標籤頁。

基於Python的Excel處理工具

pyqt4的教程例子主要來源於這裡

4 打包

如果只是python程式碼的話,別人的電腦上如果想執行就需要配置同樣的環境,所以最好打包成產品,別人執行起來只需要一個檔案即可。

我使用PyInstaller進行專案打包,在mac os上使用pip即可安裝PyInstaller。

sudo pip install pyinstaller複製程式碼

接下來打包成在mac os上可以直接執行的app格式,第一行命令生成打包中間檔案My_dear.spec,第二行程式碼處理該檔案並完成打包。

pyinstaller --windowed --onefile --clean --noconfirm My_dear.py
pyinstaller --clean --noconfirm --windowed --onefile My_dear.spec複製程式碼

當然也可以打包成pkg或dmg等格式,參考這裡

可這不是我要的效果,因為這個最終是要給妹子用的,妹子單位上班的地方用的桌上型電腦裝的卻是windows,所以平臺差異的問題這時候浮現了出來,一開始就弄錯了開發平臺,因為mac os上開發的程式是不可能打包成exe的= =。

5 出奇簡單的Windows

所以轉戰到實驗室的windows桌上型電腦上再次開發,卻發現這次windows的開發流程比mac os簡單多了。在windows上,有了python,如果想使用pyqt4,安裝一個軟體就夠了,裡面包含了你需要的一切!

下載地址在這裡,直接根據你的python版本和位數選擇exe即可。

安裝過程中會預設選擇系統python安裝路徑,安裝完畢之後就可以執行My_dear.py檔案了。

至於windows下的打包,同樣可以使用PyInstaller。和mac os不同的是,mac os中PyInstaller是python的一個包且可通過pip下載,而在windows中則需要人工下載原始碼。

下載連結在這裡,下載完畢後解壓即可。在cmd中進入該目錄,使用以下命令即可完成打包(為了方便可以把My_dear.py也拷貝至該目錄下)。

python pyinstaller.py [opts] My_dear.py複製程式碼

其中opts為可選引數,主要包括:

  • -F,-onefile:打包成一個exe資料夾;
  • -D,-onedir:建立一個目錄,包含exe資料夾,但會依賴很多檔案(預設);
  • -c,-console,-nowindowed:使用控制檯,無介面(預設);
  • -w,-windowed,-noconsole:使用視窗,無控制檯。

所以對於我的GUI,引數的選擇是-Fw。

6 總結

在本次開發過程中,出於個人習慣選擇了mac os作為開發平臺,後面由於匯出exe的需求在windows上再次做了嘗試。總的來說,接觸並初步熟悉了pyqt4在mac os和windows上的部署和開發,以及用PyInstaller打包py程式的方法,還是收穫良多的。

如果覺得文章不錯,不妨點一下左下方的喜歡~

相關文章