如何在 C# 中編輯 Excel 中的工作表公式

使用 IronXL 在 C# 中編輯 Excel 公式

This article was translated from English: Does it need improvement?
Translated
View the article in English

Excel 公式是以等號 (=) 開頭的表達式,用於數學計算、資料處理以及根據儲存格值推導出結果。 它可能包含算術運算、函數、儲存格參考、常數和邏輯運算。 公式能夠隨著儲存格值的變化而動態更新,這使得 Excel 成為自動化任務和資料分析的多功能工具。 IronXL 支援編輯 Excel 檔案中的現有公式,擷取公式的結果,並強制重新計算工作簿。 這樣可以確保每個公式都會重新計算,從而獲得準確的結果。 IronXL 支援超過165 種配方

快速入門:立即更改儲存格公式

使用 IronXL 的Formula屬性,在任何儲存格上設定或更新公式。 然後呼叫EvaluateAll()重新計算所有公式-快速上手,輕鬆確保結果更新。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronXL

    PM > Install-Package IronXL.Excel

  2. 複製並運行這段程式碼。

    IronXL.WorkBook.Load("MyFile.xlsx").DefaultWorkSheet["B2"].Formula = "=平均的(C1,C2)";
    workBook.EvaluateAll();
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronXL,免費試用!
    arrow pointer


開始使用 IronXL

編輯公式範例

若要編輯或設定公式,請造訪"公式"屬性。 首先,選擇一個區域或儲存格,然後存取並設定公式屬性。 Formula 屬性既可以取得也可以設置,它會傳回公式字串(如果有)。 呼叫EvaluateAll方法重新評估整個工作簿,以確保計算準確。

:path=/static-assets/excel/content-code-examples/how-to/edit-formulas-edit-formulas.cs
using IronXL;

// Load workbook
WorkBook workBook = WorkBook.Load("Book1.xlsx");

// Select worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Edit or Set formula
workSheet["A4"].Formula = "=SUM(A1,A3)";

// Reevaluate the entire workbook
workBook.EvaluateAll();
Imports IronXL

' Load workbook
Private workBook As WorkBook = WorkBook.Load("Book1.xlsx")

' Select worksheet
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Edit or Set formula
Private workSheet("A4").Formula = "=SUM(A1,A3)"

' Reevaluate the entire workbook
workBook.EvaluateAll()
$vbLabelText   $csharpLabel

從公式中檢索結果

要從公式中檢索結果,最好使用單元格的FormattedCellValue屬性以獲得更精確的結果。 在選定的範圍內,您可以使用First方法存取單元格,該方法選擇序列的第一個元素,在我們的範例中通常是"A4"。 從那裡,存取 FormattedCellValue 屬性。

:path=/static-assets/excel/content-code-examples/how-to/edit-formulas-retrieve-formula-value.cs
using IronXL;
using System;
using System.Linq;

// Load workbook
WorkBook workBook = WorkBook.Load("Book1.xlsx");

// Select worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Retrieve the result value
string value = workSheet["A4"].First().FormattedCellValue;

// Print the result to console
Console.WriteLine(value);
Imports IronXL
Imports System
Imports System.Linq

' Load workbook
Private workBook As WorkBook = WorkBook.Load("Book1.xlsx")

' Select worksheet
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Retrieve the result value
Private value As String = workSheet("A4").First().FormattedCellValue

' Print the result to console
Console.WriteLine(value)
$vbLabelText   $csharpLabel

支援的配方

Excel 包含 450 多個公式,可用於各種用途的計算。 IronXL 支援大約 165 種最常用的配方。 請查看以下內容,以了解支援的公式:

配方名稱 描述
ABS傳回一個數的絕對值,忽略其符號。
INT將數字向下取整到最接近的整數。
數數統計包含指定範圍內數字的儲存格數量。
如果執行條件測試,如果條件為真則傳回一個值,如果條件為假則傳回另一個值。
對一系列數字求和。
平均的計算一系列數字的平均值。
最小值傳回一組數字中的最小值。
最大限度傳回一組數字中的最大值。
傳回儲存格引用的行號。
柱子傳回儲存格引用的列號。
表示"不可用"或資料缺失的錯誤值。
淨現值計算一系列現金流量在指定折現率下的淨現值。
標準差計算一組數字的標準差。
符號傳回數字的符號,-1 表示負數,0 表示零,1 表示正數。
圓形的將數字四捨五入到指定的小數位數。
抬頭在一定範圍內尋找某個值,並傳回另一個範圍內對應的值。
指數傳回給定範圍內指定行和列中儲存格的值。
報告將一段文字字串重複指定次數。
根據指定的起始位置和長度,從給定的文字字串中提取一部分文字。
僅有的傳回文字字串中的字元數。
價值將表示數字的文字字串轉換為實際數字。
真的表示邏輯值為"True"。
錯誤的表示邏輯值為"False"。
檢查所有指定的條件是否為真,如果為真則傳回"True",否則傳回"False"。
或者檢查是否至少有一個指定的條件為真,如果為真則傳回"True",否則傳回"False"。
不是反轉條件的邏輯值,將"真"變為"假",反之亦然。
反對傳回一個數除以另一個數的餘數。
管理員根據指定條件從資料庫中提取最小值。
我們的計算一組數字的變異數。
文字將數字轉換為指定格式的文字。
光電根據一系列現金流量和折現率計算投資或貸款的現值。
未來價值 (FV)根據定期付款和指定的利率計算投資或貸款的未來價值。
NPER(週期數)確定在給定定期付款和利率的情況下,達到特定財務目標所需的付款期數。
PMT(付款)計算償還貸款或投資所需的定期付款額,包括本金和利息。
利率(Interest Rate)計算透過一系列定期付款實現財務目標所需的利率。
MIRR(修正內部報酬率)計算一系列現金流的內部報酬率,考慮多種再投資和融資利率。
內部報酬率(IRR)計算一系列現金流的內部報酬率,顯示投資達到損益兩平點的報酬率。
蘭德公司產生一個介於 0 和 1 之間的隨機十進位數。
匹配在指定範圍內搜尋指定值,並傳回找到的項目的相對位置。
日期透過指定年、月、日來建立日期值。
時間透過指定小時、分鐘和秒來建立時間值。
從給定的日期中提取星期幾。
根據給定的日期提取月份。
根據給定的日期提取年份。
工作日傳回指定日期的星期幾。
小時從給定時間中提取小時。
分分鐘從給定時間中提取分鐘。
第二從給定時間中提取秒。
現在返回目前日期和時間。
區域計算引用中各個範圍的數量。
統計指定範圍內的行數。
專欄計算指定範圍內的列數。
抵銷傳回從指定儲存格向外偏移指定行數和列數的參考偏移量。
搜尋在文字字串中尋找子字串並返回其位置。
轉置轉置一個區域的行和列。
ATAN2計算指定 x 和 y 座標的反正切值。
計算指定值的反正弦值。
ACOS計算指定值的反餘弦值。
選擇根據指定位置,從值清單中傳回一個值。
搜尋在表格或範圍的第一行中尋找值,並傳回指定行中相同列的值。
V抬頭在表格或範圍的第一列中尋找值,並傳回同一行中指定列的值。
ISREF檢查一個值是否為引用,如果是則傳回"True",如果不是則傳回"False"。
紀錄計算以指定底數為底的數的對數。
字元傳回給定數字所指定的字元。
降低將文字轉換為小寫。
將文字轉換為大寫。
恰當的將文字字串中每個單字的首字母大寫。
左邊從文字字串的開頭提取指定數量的字元。
正確的從文字字串的末尾提取指定數量的字元。
精確的比較兩個文字字串,如果它們相同則傳回"True",否則傳回"False"。
修剪刪除文字字串中的多餘空格,但保留單字之間的單一空格。
代替將文字字串中指定數量的字元替換為新文字。
代替將文字字串中指定的文字替換為新文字。
程式碼傳回文字字串中第一個字元的 Unicode 數值。
尋找在文字字串中尋找特定子字串並返回其位置。
ISERR檢查一個值是否為除"#N/A"之外的錯誤值,如果是則傳回"True",如果不是則傳回"False"。
IS文字檢查值是否為文本,如果是則返回"True",如果不是則返回"False"。
ISNUMBER檢查一個值是否為數字,如果是則傳回"True",如果不是則傳回"False"。
伊斯布蘭克檢查單元格是否為空,如果為空則傳回"True",否則傳回"False"。
T將數值轉換為文字格式。
日期值將以文字形式表示的日期轉換為日期序號。
乾淨的從文字中刪除不可列印字元。
MDETERM計算數組的矩陣行列式。
最小值VERSE傳回矩陣的乘法逆元(倒數)。
MMULT將兩個矩陣相乘。
IPMT計算在給定期限內貸款支付的利息部分。
PPMT計算在給定期限內貸款支付的本金部分。
數數A計算指定範圍內非空單元格的數量,包括文字和數字。
產品將指定範圍內的所有數字相乘。
事實計算一個數的階乘。
ISNON文字檢查值是否為文本,如果不是文字則傳回"True",如果是文字則傳回"False"。
船運根據樣本估計總體的變異數。
樹幹將數字截斷為指定的小數位數。
不合邏輯檢查一個值是否為邏輯(布林)值,如果是則傳回"True",如果不是則傳回"False"。
美國勞工部將數字轉換為帶有貨幣符號和兩位小數的文字格式。
圍捕將數字向上取整到指定的小數位數。
向下取整將數字向下取整到指定的小數位數。
傳回清單中數字的排名,並提供處理並列排名的選項。
地址根據行號和列號,以文字形式傳回儲存格位址。
天S360使用 360 天的一年計算兩個日期之間的天數。
今天返回目前日期。
中位數傳回一組數字的中位數(中間值)。
和產品將陣列中對應的元素相乘,並傳回乘積總和。
出生計算一個數的雙曲正弦值。
COSH計算一個數的雙曲餘弦值。
坦尚尼亞計算一個數的雙曲正切值。
亞辛計算一個數的反雙曲正弦值。
ACOSH計算一個數的反雙曲餘弦值。
A坦尚尼亞計算一個數的反雙曲正切值。
外部函數表示由外部插件或自訂函數提供的函數呼叫或操作。
錯誤類型傳回與給定值中的錯誤類型對應的數字。
AVEDEV計算一組數值與其平均值的平均絕對偏差。
結合計算從較大集合中取出給定數量的元素所能得到的組合數。
甚至將數字向上取整到最接近的偶數。
地面將數字向下取整到指定位數的最接近的倍數。
天花板將數字向上取整到指定位數的最接近的倍數。
N或者MDIST計算指定值的累積常態分佈函數。
正常主義者計算標準常態累積分佈函數。
N或者最小值V計算指定機率下常態累積分佈函數的逆函數。
正常計算標準常態累積分佈函數的逆函數。
標準化將一個值轉換為平均值為 0,標準差為 1 的標準常態分配。
奇怪的將數字向上取整到最接近的奇數。
泊松計算給定事件數的泊松分佈機率。
TDIST計算指定值和自由度的學生 t 分佈。
和XMY2計算兩個數組中對應值差的平方和。
和X2MY2計算兩個數組中對應值差的平方和。
和X2PY2計算兩個數組中對應值總和的平方和。
截距計算圖表中趨勢線與 y 軸的交點。
計算圖表中趨勢線的斜率。
DEVSQ傳回資料點與其平均值偏差的平方和。
和SQ計算一組數的平方和。
大的傳回資料集中的第 k 個最大值,其中 k 是指定的。
小的傳回資料集中的第 k 個最小值,其中 k 為指定值。
百分位數傳回資料集的第 k 個百分位數,其中 k 為指定值。
百分比排名傳回資料集中某個數值佔總值數量的百分比排名。
模式傳回資料集中出現頻率最高的值。
連接將多個文字字串合併為一個字串。
力量將一個數提升到指定的冪。
弧度將角度轉換為弧度。
將弧度轉換為角度。
小計對一個範圍執行各種計算(例如,求和、平均值),您可以選擇是否包含或排除範圍內的其他小計結果。
求和將指定範圍內所有符合特定條件的數字相加。
數數如果計算指定範圍內符合指定條件的儲存格數量。
計數空白計算指定範圍內空單元格的數量。
羅馬將阿拉伯數字轉換為羅馬數字。
超連結建立指向網頁或檔案的超連結。
什麼傳回一組數字(包括文字和邏輯值)中的最大值。
傳回一組數字(包括文字和邏輯值)中的最小值。

常見問題解答

如何使用 C# 編輯 Excel 工作表中的公式?

要使用 C# 編輯 Excel 工作表中的公式,可以使用 IronXL 庫。首先,從 NuGet 下載庫,然後加載或創建 Excel 文件。訪問單元格或範圍的 Formula 屬性以設置或修改所需的公式。

使用 C# 檢索 Excel 文件中公式結果的步驟是什麼?

您可以通過訪問單元格的 FormattedCellValue 屬性來檢索 Excel 文件中公式的結果。此屬性提供 Excel 中顯示的公式計算結果。

如何在編輯後確保 Excel 工作簿中的所有公式都是最新的?

使用 IronXL 的 EvaluateAll 方法來重新計算工作簿中的所有公式。此方法確保所有公式被重新計算並反映最新的數據變更。

.NET 庫例如 IronXL 支持哪些類型的 Excel 公式?

IronXL 支持超過 165 種常見的 Excel 公式,包括 SUM、AVERAGE、IF、COUNT、VLOOKUP、ABS、INT 等,涵蓋廣泛的算術運算、邏輯測試和統計分析。

我能否使用 C# 庫在 Excel 公式中執行邏輯運算?

是的,使用 IronXL,您可以在 Excel 公式中執行邏輯運算。這允許您在 Excel 文件中創建動態和基於條件的計算。

修改公式後,如何用 C# 匯出編輯過的 Excel 文件?

使用 IronXL 編輯您的 Excel 文件中的公式後,您可以使用 SaveAs 方法匯出更改。這允許您將編輯過的文件保存到系統的指定位置。

是否可以使用 C# 庫一次編輯多個單元格的公式?

是的,使用 IronXL,您可以一次編輯多個單元格或一個範圍內的公式,通過遍歷所需範圍並為每個單元格設置 Formula 屬性。

開始用 C# 編輯 Excel 文件的最佳方式是什麼?

要開始用 C# 編輯 Excel 文件,從 NuGet 下載 IronXL。接著,創建一個新的專案,加載您的 Excel 文件,並使用 IronXL 的 API 來操控所需的公式和其他數據。

如何使用 C# 庫排除 Excel 中公式的錯誤?

如果使用 IronXL 遇到公式錯誤,請確保公式語法正確,參照單元格中必需的數據可用,並使用 EvaluateAll 方法重新計算工作簿以確保準確性。

Chaknith Bin
軟體工程師
Chaknith 在 IronXL 和 IronBarcode 上工作。他對 C# 和 .NET 擁有深厚的專業知識,幫助改進了軟體並支持客戶。他從用戶互動中得到的見解有助於改善產品、文檔和整體體驗。
準備好開始了嗎?
Nuget 下載 1,738,553 | Version: 2025.11 剛發表