使用 Python 建立一個 GUI 將 CSV 檔案轉換為 Excel 檔案
隨著企業的發展壯大,他們需要管理大量的資訊。這些資訊可能以不同的格式出現,能夠將它們轉換為正確的格式對於業務運營的順利進行至關重要。處理此問題的一種方法是將 CSV 檔案轉換為 Excel 格式。在本教程中,我們將使用 Python 構建一個圖形使用者介面 (GUI) 來將 CSV 檔案轉換為 Excel 檔案。
什麼是 CSV 檔案?在 Python 中使用 CSV 檔案的重要性是什麼?
CSV(逗號分隔值)檔案是一個純文字檔案,以結構化格式儲存表格資料。CSV 檔案中的每一行代表一條記錄,每條記錄包含一個或多個由逗號分隔的欄位。CSV 檔案廣泛應用於資料科學、機器學習和其他需要處理或分析表格資料的領域。
在 Python 中,CSV 檔案通常用於儲存和處理資料。在 Python 中使用 CSV 檔案的主要重要性在於:
易於讀取和寫入 - Python 提供了一個名為 csv 的內建模組,使讀取和寫入 CSV 檔案變得容易。此模組包含處理解析 CSV 檔案的底層細節的功能,例如處理不同的欄位分隔符和處理帶引號的欄位。
輕量級且高效 - CSV 檔案輕量級且佔用最少的磁碟空間,使其成為儲存和傳輸大量資料的理想選擇。Python 的內建 csv 模組也很高效,可以處理大型 CSV 檔案而不會消耗太多記憶體。
與其他程式相容 - CSV 檔案被廣泛使用,並得到許多不同的程式和工具的支援。這使得它們成為在不同系統或應用程式之間交換資料的理想選擇。
靈活性 - CSV 檔案可以輕鬆自定義以適應各種資料格式和結構。例如,您可以使用不同的分隔符(例如製表符或分號)來分隔 CSV 檔案中的欄位。
與其他 Python 庫整合 - Python 的 pandas 庫(廣泛用於資料科學和分析)包含一個強大的 CSV 讀取和寫入引擎,允許您輕鬆讀取和操作 CSV 檔案。這使得將 CSV 檔案整合到更大的資料處理工作流程中變得容易。
總之,CSV 檔案提供了一種簡單靈活的方式來儲存和交換表格資料,而 Python 提供了一套強大高效的工具來處理 CSV 檔案。
使用 Excel 的優勢是什麼?
Excel 是微軟開發的一種流行的電子表格軟體應用程式。它廣泛應用於企業、學校和個人環境中,用於各種目的。以下是使用 Excel 的一些優勢:
資料組織 - Excel 允許您以表格格式組織資料,使檢視和操作大量資料變得容易。您可以對資料進行排序、篩選和分組,以快速識別模式和趨勢。
計算 - Excel 具有強大的計算功能,允許您對資料執行復雜的計算和分析。您可以使用公式、函式和資料透視表來分析資料並生成見解。
視覺化 - Excel 允許您建立圖表和圖形來視覺化資料。這使得與他人溝通見解和趨勢變得容易。
協作 - Excel 允許多個使用者同時處理同一個電子表格,從而方便與他人協作完成專案。您還可以跟蹤更改和註釋,從而方便審查和批准更改。
整合 - Excel 可以與其他軟體應用程式(如資料庫和其他資料來源)整合,從而方便匯入和匯出資料。這使您能夠在單個電子表格中處理來自不同來源的資料。
自動化 - Excel 具有強大的自動化功能,允許您自動化重複性任務並節省時間。您可以使用宏和 VBA(Visual Basic for Applications)來自動化格式化、資料輸入和報告等任務。
總之,Excel 是一個用於組織、分析和視覺化資料的強大工具。它允許您與他人協作並整合來自不同來源的資料。它還提供自動化功能以節省時間並提高效率。
先決條件
在我們深入瞭解建立 GUI 的細節之前,您應該對 Python 程式設計、面向物件程式設計 (OOP) 概念以及如何使用 Tkinter 模組有一個基本的瞭解。
推薦設定列表:
pip install tkinter, pandas
預計使用者將能夠訪問任何獨立的 IDE,例如 VS-Code、PyCharm、Atom 或 Sublime text。
甚至可以使用線上 Python 編譯器,例如 Kaggle.com、Google Cloud Platform 或任何其他編譯器。
更新版本的 Python。在撰寫本文時,我使用了 3.10.9 版本。
瞭解如何使用 Jupyter notebook。
虛擬環境的知識和應用將是有益的,但不是必需的。
完成任務所需的步驟
步驟 1:匯入必要的模組
import tkinter as tk import pandas as pd from tkinter import filedialog
在本節中,我們還將匯入 pandas 庫和 tkinter 庫。Pandas 將用於讀取輸入 CSV 檔案,tkinter 將用於構建 GUI。
步驟 2:構建 GUI
我們將建立一個名為“CSV_to_Excel”的函式,當單擊“轉換按鈕”時將執行該函式。此函式讀取輸入 CSV 檔案,將其轉換為 Excel 格式,並以“.xlsx”副檔名儲存。
# Building the GUI # Function to Convert CSV to Excel and save it def CSV_to_Excel(): # Get Input File Path input_file_path = filedialog.askopenfilename() # Read CSV df = pd.read_csv(input_file_path) # Get Output File Path and Name output_file_name = input_file_path.split("/")[-1][:-4] output_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", initialfile=output_file_name) # Convert CSV to Excel and Save df.to_excel(output_file_path, index=False)
接下來,我們需要建立 GUI 視窗。我們可以透過從 Tkinter 模組建立 Tk() 類的例項來實現。我們還可以使用 title() 方法設定視窗的標題。
步驟 3:建立主視窗
主視窗是將包含我們 GUI 的視窗。我們將透過建立 tkinter 類“Tk()”的例項來啟動 GUI 視窗。然後,我們將設定視窗的各種屬性,例如標題、背景顏色、寬度和高度。
# Creating Main Window root = tk.Tk() root.title("CSV to Excel Converter") root.geometry("400x200") root.config(bg="#f0f0f0")
步驟 4:建立檢查域名可用性的函式
在此步驟中,我們將向視窗新增一個按鈕。此按鈕將顯示文字“轉換”,並在單擊時執行 CSV_to_Excel() 函式。
# Adding a Button to the Window convert_button = tk.Button(root, text="Convert", command=CSV_to_Excel, font=("Helvetica", 14), bg="#4caf50", fg="#ffffff") convert_button.pack(pady=20)
步驟 5:新增檔案對話方塊
在此步驟中,我們將新增一個檔案對話方塊,以允許使用者選擇輸入 CSV 檔案,併為使用者提供一個選項來選擇輸出檔案的名稱和目錄。
# Adding File Dialog filedialog = tk.filedialog
步驟 6:執行 GUI
最後,我們將透過呼叫 root.mainloop() 函式來執行 GUI,該函式將顯示我們的 GUI 視窗。
# Running the GUI root.mainloop()
最終程式碼,程式
import tkinter as tk import pandas as pd from tkinter import filedialog # Building the GUI # Function to Convert CSV to Excel and save it def CSV_to_Excel(): # Get Input File Path input_file_path = filedialog.askopenfilename() # Read CSV df = pd.read_csv(input_file_path) # Get Output File Path and Name output_file_name = input_file_path.split("/")[-1][:-4] output_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", initialfile=output_file_name) # Convert CSV to Excel and Save df.to_excel(output_file_path, index=False) # Creating Main Window root = tk.Tk() root.title("CSV to Excel Converter") root.geometry("400x200") root.config(bg="#f0f0f0") # Adding a Button to the Window convert_button = tk.Button(root, text="Convert", command=CSV_to_Excel, font=("Helvetica", 14), bg="#4caf50", fg="#ffffff") convert_button.pack(pady=20) # Adding File Dialog filedialog = tk.filedialog # Running the GUI root.mainloop()
輸出

使用者需要設定要轉換的檔案的路徑。輸出將儲存在所需的資料夾中。
現實世界的例子
假設一家公司以 CSV 格式收集其每日生產資料。他們需要在 Excel 中分析和視覺化資料以用於其管理報告。透過使用我們的 CSV 到 Excel 轉換器,公司只需點選幾下即可輕鬆地將每日生產資料從 CSV 格式轉換為 Excel 格式。
侷限性
該程式碼僅適用於將 CSV 檔案轉換為 Excel 檔案。
無法一次轉換多個 CSV 檔案
結論
在本教程中,我們學習瞭如何在 Python 中構建一個 GUI 來將 CSV 檔案轉換為 Excel。我們還演示瞭如何使用 tkinter 庫構建 GUI,以及如何使用 pandas 庫將 CSV 檔案讀取並轉換為 Excel 格式。我們還提供了一個現實世界場景的示例,說明此工具可能在其中有用。此工具可以幫助企業管理其資料,並節省將資料轉換為不同格式的時間。