Python 匯出到 Excel

Muhammad Maisam Abbas 2023年1月30日
  1. 使用 Python 中的 DataFrame.to_excel() 函式將資料匯出到 Excel
  2. 使用 Python 中的 xlwt 庫將資料匯出到 Excel
  3. 使用 Python 中的 openpyxl 庫將資料匯出到 Excel
  4. 使用 Python 中的 XlsWriter 庫將資料匯出到 Excel
Python 匯出到 Excel

本教程將演示在 Python 中將表格資料寫入 excel 檔案的不同方法。

使用 Python 中的 DataFrame.to_excel() 函式將資料匯出到 Excel

如果我們想在 Python 中將表格資料寫入 Excel 工作表,我們可以使用 Pandas DataFrame 中的 to_excel() 函式

pandas DataFrame 是一種儲存表格資料的資料結構。to_excel() 函式有兩個輸入引數:檔名和工作表名。我們必須將資料儲存在 pandas DataFrame 中,然後呼叫 to_excel() 函式將該資料匯出到 Excel 檔案中。

我們需要已經在我們的系統上安裝了 pandas 庫才能使這種方法起作用。下面給出了安裝 pandas 庫的命令。

pip install pandas

下面給出了這種方法的工作演示。

import pandas as pd

list1 = [10, 20, 30, 40]
list2 = [40, 30, 20, 10]
col1 = "X"
col2 = "Y"
data = pd.DataFrame({col1: list1, col2: list2})
data.to_excel("sample_data.xlsx", sheet_name="sheet1", index=False)

sample_data.xlsx 檔案:

樣本資料

在上面的程式碼中,我們使用 Python 的 to_excel() 函式將 list1list2 中的資料作為列匯出到 sample_data.xlsx Excel 檔案中。

我們首先將兩個列表中的資料儲存到 pandas DataFrame 中。之後,我們呼叫 to_excel() 函式並傳遞我們的輸出檔案和工作表的名稱。

請記住,此方法僅在兩個列表的長度相等時才有效。如果長度不相等,我們可以通過用 None 值填充較短的列表來補償缺失值。

這是在 Python 中將資料寫入與 Excel 相容的檔案的最簡單方法。

使用 Python 中的 xlwt 庫將資料匯出到 Excel

xlwt 用於將資料寫入與 Python 中從 95 到 2003 的 Excel 版本相容的舊電子表格中。這是在 Python 中將資料寫入 Excel 檔案的標準方式。

它也相當簡單,與以前的方法相比,我們可以更好地控制 Excel 檔案。我們可以建立一個 xlwt.Workbook 類的物件並呼叫 .add_sheet() 函式在我們的工作簿中建立一個新工作表。

然後我們可以使用 write() 方法來寫入我們的資料。這個 write() 函式將行索引(從 0 開始)、列索引(也從 0 開始)和要寫入的資料作為輸入引數。

我們需要在我們的機器上安裝 xlwt 庫才能使此方法起作用。下面給出了安裝庫的命令。

pip install xlwt

下面給出了這種方法的一個簡短的工作示例。

import xlwt
from xlwt import Workbook

wb = Workbook()

sheet1 = wb.add_sheet("Sheet 1")
# sheet1.write(row,col, data, style)
sheet1.write(1, 0, "1st Data")
sheet1.write(2, 0, "2nd Data")
sheet1.write(3, 0, "3rd Data")
sheet1.write(4, 0, "4th Data")

wb.save("sample_data2.xls")

sample_data2.xls 檔案:

樣本資料 2

在 Python 中,我們使用 xlwt 庫將資料寫入 sample_data2.xls 檔案。

我們首先建立了一個 Workbook 類的物件。使用這個物件,我們用 Workbook 類的 add_sheet() 方法建立了一個工作表。

然後,我們使用 write() 函式將資料寫入新建立的工作表中。最後,當所有資料都已正確寫入其指定索引時,我們使用 Workbook 類的 save() 函式將工作簿儲存到 Excel 檔案中。

這是一種非常簡單的方法,但唯一的缺點是我們必須記住檔案中每個單元格的行和列索引。我們不能只使用 A1A2 索引。這種方法的另一個缺點是我們只能編寫帶有 .xls 副檔名的檔案。

使用 Python 中的 openpyxl 庫將資料匯出到 Excel

另一種可用於將資料寫入 Excel 相容檔案的方法是 Python 中的 openpyxl

這種方法解決了以前方法的所有缺點。我們不需要記住每個資料點的確切行和列索引。只需在 write() 函式中指定我們的單元格,如 A1A2

這種方法的另一個很酷的優點是它可以用來編寫具有新的 .xlsx 副檔名的檔案,這在以前的方法中不是這種情況。此方法與前一種方法一樣工作。

這裡唯一的區別是我們必須使用 openpyxl 庫中的 cell(row,col) 方法初始化每個單元格和一個工作表。

openpyxl 也是一個外部庫。我們需要安裝這個庫才能讓這個方法正常工作。在我們的機器上安裝 openpyxl 庫的命令如下。

pip install openpyxl

下面給出了這種方法的簡單工作演示。

import openpyxl

my_wb = openpyxl.Workbook()
my_sheet = my_wb.active
c1 = my_sheet.cell(row=1, column=1)
c1.value = "Maisam"
c2 = my_sheet.cell(row=1, column=2)
c2.value = "Abbas"
c3 = my_sheet["A2"]
c3.value = "Excel"
# for B2: column = 2 & row = 2.
c4 = my_sheet["B2"]
c4.value = "file"
my_wb.save("sample_data3.xlsx")

sample_data3.xlsx 檔案:

樣本資料 3

在上面的程式碼中,我們使用 Python 中的 openpyxl 庫將資料寫入 sample_data3.xlsx Excel 檔案。

我們首先建立了一個 Workbook 類的物件。我們使用這個物件建立了一個帶有 Workbook.active 的工作表。我們還使用 my_sheet.cell(row = 1, column = 1) 建立了一個單元格物件。

除了寫出確切的行號和列號,我們還可以指定單元格名稱,如 A1。然後我們可以用 c1.value = "Maisam" 分配我們新建立的單元格值。

最後,當所有資料都已正確寫入其指定索引時,我們使用 Workbook 類的 save() 函式將工作簿儲存到 Excel 檔案中。

使用 Python 中的 XlsWriter 庫將資料匯出到 Excel

將資料寫入與 Excel 相容的檔案的另一種簡單易用的方法是 Python 中的 XlsWriter

這個庫讓我們對輸出檔案的控制比上面提到的任何以前的方法都多。該庫還支援最新的 Excel 相容副檔名,如 xlsx

要將資料寫入 Excel 檔案,我們首先必須通過提供建構函式的檔名作為輸入引數來建立 Workbook 類的物件。然後我們必須在 Workbook 類中使用 add_worksheet() 函式建立一個工作表。

新增工作表後,我們可以使用 sheet.write(cell, data) 函式寫入資料。這個 sheet.write() 函式有兩個引數:單元格的名稱和要寫入的資料。

將所有資料寫入工作表後,我們需要使用 Workbook 類中的 close() 方法關閉我們的工作簿。

XlsWriter 是一個外部庫,沒有預裝 Python。我們首先必須在我們的機器上安裝 XlsWriter 庫才能使此方法起作用。下面給出了安裝 XlsWriter 庫的命令。

pip install XlsxWriter

這種方法的工作演示如下所示。

import xlsxwriter

workbook = xlsxwriter.Workbook("sample_data4.xlsx")
sheet = workbook.add_worksheet()

sheet.write("A1", "Maisam")
sheet.write("A2", "Abbas")

workbook.close()

sample_data4.xlsx 檔案:

樣本資料 4

在上述程式碼中,我們使用 Python 的 xlswriter 庫將資料寫入 sample_data4.xlsx Excel 檔案。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Python Excel