- Python數據分析從入門到精通
- 李梓萌編著
- 1084字
- 2020-09-18 18:05:51
4.3 使用pyexcel處理Office文件

在Python程序中,可使用pyexcel模塊操作Excel和CSV文件,在使用pyexcel之前需要先安裝pyexcel_xls,安裝命令如下所示。

通過如下命令安裝pyexcel。

4.3.1 使用pyexcel讀取并寫入CSV文件
在下面的實例文件office05.py中,演示了使用pyexcel讀取并寫入CSV文件的過程。
源碼路徑:daima\4\4-3\office05.py


在上述代碼中,首先讀取了文件example.csv中的內容,然后將指定的數據寫入新建CSV文件tab_example.csv中。執行后的效果如圖4-7所示。

圖4-7 執行效果
4.3.2 使用pyexcel讀取指定Excel文件中每個單元格數據
在下面的實例文件read_cell_by_cell.py中,演示使用pyexcel讀取指定Excel文件中每個單元格數據的過程。
源碼路徑:daima\4\4-3\read_cell_by_cell.py

執行后的效果如圖4-8所示。

圖4-8 執行效果
4.3.3 按列讀取并顯示指定Excel文件中每個單元格數據
在下面的實例文件read_column_by_column.py中,演示了使用pyexcel按列讀取并顯示指定Excel文件中每個單元格數據的過程。
源碼路徑:daima\4\4-3\read_column_by_column.py

執行后的效果如圖4-9所示。

圖4-9 執行效果
4.3.4 讀取顯示Excel文件中的所有數據
如果在一個Excel文件中有多個Sheet,如文件在multiple-sheets-example.xls中有3個Sheet,里面的數據如圖4-10所示。
通過下面的實例文件read_excel_book.py,可以讀取顯示上述multiple-sheets-example.xls文件中的所有數據。

圖4-10 3個Sheet
源碼路徑:daima\4\4-3\read_excel_book.py

執行后會輸出:

4.3.5 將3組數據導入新建的Excel文件
通過下面的實例文件write_excel_book.py,可以將3組數據導入新建的multiple-sheets1.xls文件中,3組數據分別對應于里面的3個Sheet。
源碼路徑:daima\4\4-3\write_excel_book.py

執行后會創建擁有3個Sheet的Excel文件,如圖4-11所示。

圖4-11 創建的Excel文件
4.3.6 以多種方式獲取Excel數據
在下面的實例文件series.py中,演示了使用pyexcel以多種方式獲取Excel數據的過程。
源碼路徑:daima\4\4-3\series.py


通過上述代碼以多種方式獲取了Excel中的數據,包括一維數組順序和逆序、二維數組順序和逆序。執行后會輸出:

4.3.7 將數據分別導入Excel文件和SQLite數據庫
在下面的實例文件import_xls_into_database_via_sqlalchemy.py中,演示了使用pyexcel將數據分別導入Excel文件和SQLite數據庫的過程。
源碼路徑:daima\4\4-3\import_xls_into_database_via_sqlalchemy.py


執行后會輸出:

4.3.8 在Flask Web項目中使用pyexcel處理數據
在下面的實例代碼中,演示了在Flask Web項目中使用pyexcel處理數據的過程。
1)編寫程序文件pyexcel_server.py,首先通過函數upload()實現文件上傳功能,將上傳的Excel文件導出為JSON格式顯示在頁面中;然后定義數據對象data,在里面保存了將要處理的數據;最后通過函數download()實現文件下載功能,使用data對象中的數據生成一個CSV文件并下載下來。文件pyexcel_server.py的具體實現代碼如下所示。
源碼路徑:daima\4\4-3\memoryfile\pyexcel_server.py

2)編寫模板文件upload.html實現了文件上傳界面效果,具體實現代碼如下所示。
源碼路徑:daima\4\4-2\memoryfile\templates\upload.html

在運行本實例程序之前確保已經安裝gunicorn,然后通過如下命令運行本程序。

在瀏覽器中輸入“http://127.0.0.1:5000/upload”后會顯示文件上傳界面,如圖4-12所示。

圖4-12 文件上傳界面
單擊“選擇文件”按鈕后選擇一個上傳文件,單擊upload按鈕后將在頁面中顯示上傳文件的JSON格式數據,如圖4-13所示。

圖4-13 顯示上傳文件的JSON格式數據
在瀏覽器中輸入“http://127.0.0.1:5000/download”后,會下載指定的CSV文件export.csv,這個文件中的數據是從data中導入并生成的。執行效果如圖4-14所示。

圖4-14 下載指定文件export.csv