使用 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 格式。我們還提供了一個現實世界場景的示例,說明此工具可能在其中有用。此工具可以幫助企業管理其資料,並節省將資料轉換為不同格式的時間。

更新於: 2023 年 4 月 20 日

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告