使用Python更改Excel中的值


在本文中,我們將學習使用Python更改Excel表格中資料值的不同方法。

Openpyxl

Openpyxl是一個用於處理Excel電子表格的Python庫。它是一個流行的選擇,因為它易於使用,擁有活躍的開發者社群,並提供了許多處理電子表格的功能。

Openpyxl允許你使用Python建立、讀取、寫入和修改Excel檔案。它支援以下檔案格式:

  • XLSX(Microsoft Excel開放XML電子表格)

  • XLSM(Microsoft Excel開放XML宏啟用電子表格)

  • XLTM(Microsoft Excel開放XML宏啟用模板)

  • XLTX(Microsoft Excel開放XML模板)

以下是Openpyxl的一些關鍵特性:

  • 讀取和寫入Excel檔案:使用Openpyxl,你可以輕鬆地讀取和寫入Excel檔案。這包括從頭建立新檔案、修改現有檔案和儲存更改。

  • 資料操作:Openpyxl允許你在Excel電子表格中操作資料。這包括對資料進行排序、篩選和格式化,以及執行計算和聚合。

  • 單元格操作:Openpyxl提供了一種簡單的方法來操作Excel電子表格中的單元格。你可以設定單元格值,應用格式,並向單元格新增公式。

  • 圖表:Openpyxl支援建立和修改Excel圖表。你可以從頭建立圖表或修改現有的圖表。

  • 資料透視表:Openpyxl支援資料透視表,允許你分析Excel電子表格中的資料。

  • 保護:Openpyxl允許你透過向Excel檔案新增密碼保護來保護它們。

  • 相容性:Openpyxl與Python 3.6及更高版本相容,可以在Windows、Linux和Mac OS X作業系統上使用。

總的來說,Openpyxl是一個功能強大且靈活的庫,它使在Python中處理Excel檔案變得容易。無論你需要從Excel檔案讀取資料、建立新的電子表格還是執行復雜的資料分析,Openpyxl都擁有你完成工作所需的工具。

現在我們對Openpyxl有了一些瞭解,讓我們來看一個例子,我們將在這個例子中更改Excel表格第一列的第一個標題的值。

Excel表格目前看起來像這樣(此處應插入圖片)

我們的目標是將第一列的第一個標題的值,也就是**RiskName**,更改為**TutorialsPoint**。

為了能夠執行下面的程式碼,首先需要在我們的機器上安裝Openpyxl庫。

要安裝Openpyxl,只需執行以下命令:

命令: `pip install openpyxl`

pip3 install openxypl

注意:如果你使用的是較舊版本的Python,可以執行`pip install openpyxl`。

考慮以下程式碼:

示例程式碼:(此處應插入程式碼示例)

# import the openpyxl library
import openpyxl

# open the Excel file
workbook = openpyxl.load_workbook('workbook.xlsx')

# select the sheet to modify
sheet = workbook['Sheet1']

# change the header name
sheet.cell(row=1, column=1).value = 'TutorialsPoint'

# save the changes
workbook.save('example.xlsx')

解釋:

在這個例子中,我們首先匯入Openpyxl庫。然後,我們使用`load_workbook()`方法載入Excel檔案'workbook.xlsx'。

接下來,我們使用工作表名稱(本例中為'Sheet1')選擇要修改的工作表。然後,我們將第1行第1列(對應於第一個標題單元格)的單元格值更改為'TutorialsPoint'。

最後,我們使用`save()`方法將更改儲存到Excel檔案。

請注意,這只是一個基本的示例,你可以修改程式碼來更改Excel檔案中任何工作表的標題名稱。你還可以修改程式碼來更改工作表的其他方面,例如單元格值、格式或新增新的行和列。

要執行上面的程式碼,只需執行以下命令:

命令: `pip install openpyxl`

python3 main.py

一旦我們在終端執行上述命令,我們將在輸出中得到一個新的Excel檔案。

輸出:(此處應插入輸出圖片)

從上圖可以看出,第一列的第一個標題名稱現在已更改為“TutorialsPoint”,而不是“RiskName”。

現在,讓我們嘗試將“MemberID”列的值更改為“TutorialsPoint”。

這非常簡單,我們只需要更改程式碼中`cell`方法中傳遞的列關鍵字的值為3即可。

考慮以下更新後的程式碼:(此處應插入更新後的程式碼示例)

示例程式碼:(此處應插入程式碼示例)

# import the openpyxl library
import openpyxl

# open the Excel file
workbook = openpyxl.load_workbook('workbook.xlsx')

# select the sheet to modify
sheet = workbook['Sheet1']

# change the header name
sheet.cell(row=1, column=3).value = 'TutorialsPoint'

# save the changes
workbook.save('example.xlsx')

解釋:

先前程式碼和上述程式碼之間的唯一區別是列關鍵字的值更改為3,因為我們想要更改第三列中存在的標題的值。

要執行上面的程式碼,只需執行以下命令:

命令: `pip install openpyxl`

python3 main.py

一旦我們在終端執行上述命令,我們將在輸出中得到一個新的Excel檔案。

輸出:(此處應插入輸出圖片)

使用xlwt/xlrd/xlutils

讓我們首先詳細討論這些包。

xlwt、xlrd和xlutils庫是用於處理Excel檔案的Python模組。這些庫可用於在Python中讀取、寫入和操作Excel電子表格。

xlrd

xlrd是一個可用於從Excel檔案提取資料的庫。它能夠讀取.xls格式的Excel檔案。xlrd提供許多從電子表格讀取資料的函式,包括:

  • xlrd.open_workbook(filename, on_demand=False, formatting_info=False):此函式用於開啟Excel檔案,並返回xlrd.book.Book類的例項。on_demand引數可用於控制是否將整個電子表格載入到記憶體中。formatting_info引數用於啟用或停用格式資訊的解析。

  • book.sheets():此函式返回xlrd.sheet.Sheet物件的列表,每個物件代表工作簿中的一個工作表。

  • sheet.nrows和sheet.ncols:這些屬性分別返回工作表中的行數和列數。

xlwt

xlwt是一個可用於建立和寫入.xls格式Excel檔案資料的庫。它提供許多用於建立和寫入電子表格資料的函式,包括:

  • xlwt.Workbook(encoding='utf-8'):此函式建立一個新的xlwt.Workbook物件,該物件代表一個新的Excel檔案。

  • workbook.add_sheet(sheetname, cell_overwrite_ok=False):此函式建立一個具有指定名稱的新工作表,並返回xlwt.Worksheet物件。

  • worksheet.write(row, col, value, style=None):此函式將值寫入指定行和列的單元格。style引數可用於將格式應用於單元格。

xlutils

xlutils是一個庫,它提供許多用於處理Excel檔案的實用程式函式。它包括用於複製工作表、複製單元格等的函式。xlutils中的主要類和函式是:

  • xlutils.copy.copy:此函式可用於透過複製現有檔案來建立新的Excel檔案。

  • xlutils.copy.copy_worksheet:此函式可用於將工作表從一個工作簿複製到另一個工作簿。

  • xlutils.copy.cell:此函式可用於將單元格的內容和格式從一個工作表複製到另一個工作表。

現在我們已經詳細討論了這些包,讓我們使用一個程式碼示例,我們將在Python程式碼中使用它們。

考慮以下程式碼:

示例程式碼:(此處應插入程式碼示例)

import xlrd
import xlwt
from xlutils.copy import copy

# Open the Excel file and get the first sheet
workbook = xlrd.open_workbook("workbook.xls")
sheet = workbook.sheet_by_index(0)

# Find the column index of the header you want to change
header_col = None
for col in range(sheet.ncols):
	if sheet.cell_value(0, col) == "First Name":
    	header_col = col
    	break

# If the header was found, change its value
if header_col is not None:
	# Create a new workbook and copy the existing sheet
	new_workbook = copy(workbook)
	new_sheet = new_workbook.get_sheet(0)

	# Set the value of the header in the copied sheet
	new_sheet.write(0, header_col, "TutorialsPoint")

	# Save the new workbook to a file
	new_workbook.save("workbook_modified.xls")

解釋:

我們首先匯入必要的模組:

  • xlrd:此模組用於從Excel檔案讀取資料。

  • xlwt:此模組用於將資料寫入Excel檔案。

  • xlutils:此模組提供了一種修改現有Excel檔案的方法。

  • 我們使用`xlrd.open_workbook()`開啟要修改的Excel檔案,並使用`workbook.sheet_by_index(0)`獲取第一個工作表。

  • 我們透過遍歷工作表第一行的列(使用for迴圈和`sheet.cell_value(row, col)`獲取單元格的值),找到要更改的標題的列索引。

  • 如果找到標題,我們使用xlutils中的`copy()`建立一個新的工作簿,並將現有工作表複製到其中(使用`new_workbook.get_sheet(0)`)。

  • 然後,我們使用`new_sheet.write(row, col, value)`將標題的值設定為新值。

  • 最後,我們使用`new_workbook.save(filename)`將修改後的工作簿儲存到新檔案。

就是這樣!本程式演示瞭如何使用 xlrd、xlwt 和 xlutils 透過更改標題的值來修改 Excel 檔案。

要執行上面的程式碼,只需執行以下命令:

命令: `pip install openpyxl`

python3 main.py

一旦我們在終端執行上述命令,我們將在輸出中得到一個新的Excel檔案。

輸出:(此處應插入輸出圖片)

結論

總而言之,Python 提供了多個用於處理 Excel 檔案的庫,包括 xlrd、xlwt 和 xlutils。這些庫允許我們使用 Python 程式碼讀取、寫入和修改 Excel 檔案。

在本例中,我們使用這些庫更改了 Excel 表格中標題的值。此過程包括使用 xlrd 開啟 Excel 檔案,查詢要更改的標題的索引,使用 xlutils 建立工作簿的副本,使用 xlwt 修改副本工作表中標題的值,然後將修改後的工作簿儲存到新檔案。

藉助這些強大的庫,我們可以自動化複雜的 Excel 任務並將它們整合到更大的 Python 應用程式中,從而更輕鬆地處理和分析儲存在 Excel 檔案中的資料。

更新於:2023年8月2日

4K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.