Python保留數(shù)據(jù)并刪除Excel單元格的函數(shù)和公式
前言
在分析處理Excel表格時,我們可能需要使用各種公式或函數(shù)對表格數(shù)據(jù)進行計算,從而分析出更多的信息。但在展示、分享或再利用分析結(jié)果時,我們可能需要將含有公式的單元格轉(zhuǎn)換為靜態(tài)數(shù)值,從而簡化數(shù)據(jù)、保護計算結(jié)果不被更改,以及提高數(shù)據(jù)的可移植性。利用Python我們可以輕松實現(xiàn)公式或函數(shù)的批量移除,并保證數(shù)據(jù)不被改變。本文將介紹如何使用Python代碼批量移除Excel單元格中的公式并保留數(shù)值。
本文所使用的方法需要用到Spire.XLS for Python,PyPI:pip install spire.xls。
批量移除單元格公式和函數(shù)并保留數(shù)值
我們可以遍歷工作表中的已使用的行和列,使用Worksheet.Range[]來獲取單元格并判斷其是否包含公式或函數(shù),然后再將單元格的值直接設(shè)置為公式或函數(shù)的計算結(jié)果,從而實現(xiàn)移除公式和函數(shù)并保留結(jié)果數(shù)值。
以下是詳細(xì)操作步驟:
- 導(dǎo)入所需模塊。
- 創(chuàng)建
Workbook對象,并使用Workbook.LoadFromFile()方法載入Excel文件。 - 遍歷工作簿中的工作表,使用
Workbook.Worksheets.get_Item()方法獲取工作表。 - 遍歷工作表中的行和列,使用
Worksheet.Range[int: rowIndex, int: colIndex]屬性獲取指定單元格。 - 通過判斷
CellRange.HasFormula屬性的值從而判斷單元格是否包含函數(shù)或公式,如果包含:- 使用
CellRange.FormulaValue屬性獲取函數(shù)或公式的計算結(jié)果。 - 使用
CellRange.Clear(ExcelClearOptions.ClearContent)方法清除單元格內(nèi)容。 - 使用
CellRange.Value屬性將單元格的值設(shè)置為前面獲取的計算結(jié)果。
- 使用
- 使用
Workbook.SaveToFile()方法保存工作簿。 - 釋放資源。
代碼示例
from spire.xls import *
# 創(chuàng)建一個Workbook對象
workbook = Workbook()
# 從文件加載Excel工作簿
workbook.LoadFromFile("Sample.xlsx")
# 遍歷所有工作表
for sheetIndex in range(workbook.Worksheets.Count):
# 獲取一個工作表
sheet = workbook.Worksheets.get_Item(sheetIndex)
# 遍歷所有單元格
for rowIndex in range(sheet.Rows.Count):
for colIndex in range(sheet.Columns.Count):
# 獲取一個單元格
cell = sheet.Range[rowIndex + 1, colIndex + 1]
# 檢查單元格是否有公式
if cell.HasFormula:
# 獲取公式的計算結(jié)果
formulaValue = cell.FormulaValue
# 清除單元格內(nèi)容
cell.Clear(ExcelClearOptions.ClearContent)
# 將單元格值設(shè)置為公式的結(jié)果
cell.Value = formulaValue
# 保存工作簿
workbook.SaveToFile("output/ClearFormula.xlsx", FileFormat.Version2016)
# 釋放資源
workbook.Dispose()
結(jié)果文件

本文演示了如何使用Python刪除Excel中的公式和函數(shù)而保留其計算結(jié)果。
到此這篇關(guān)于Python保留數(shù)據(jù)刪除Excel單元格的函數(shù)和公式的文章就介紹到這了,更多相關(guān)Python刪除Excel的函數(shù)和公式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的collections模塊中的OrderedDict有序字典
字典是無序的,但是collections的OrderedDict類為我們提供了一個有序的字典結(jié)構(gòu),名副其實的Ordered+Dict,下面通過兩個例子來簡單了解下Python的collections模塊中的OrderedDict有序字典:2016-07-07
Python cx_freeze打包工具處理問題思路及解決辦法
這篇文章主要介紹了Python cx_freeze打包工具處理問題思路及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-02-02
Python自動化之UnitTest框架實戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于Python自動化之UnitTest框架實戰(zhàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python實現(xiàn)學(xué)校管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)學(xué)校管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
Python使用sys.path查看當(dāng)前的模塊搜索路徑
sys.path 是 Python 中的一個列表,它用于存儲模塊搜索路徑,當(dāng)你使用 import 語句導(dǎo)入一個模塊時,Python 會按照 sys.path 列表中的路徑順序來查找這個模塊,本文給大家介紹了Python使用sys.path查看當(dāng)前的模塊搜索路徑,需要的朋友可以參考下2025-02-02
Python中IndexError與KeyError的解決方案和預(yù)防措施
在Python編程中,索引錯誤(IndexError)和鍵錯誤(KeyError)是兩種極為常見的異常類型,本文將深入剖析這兩種錯誤的本質(zhì)、產(chǎn)生原因,并提供一系列實用的解決方案和預(yù)防措施,需要的朋友可以參考下2025-12-12

