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

How to Edit Formulas in a Worksheet

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 IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    IronXL.WorkBook.Load("MyFile.xlsx").DefaultWorkSheet["B2"].Formula = "=AVERAGE(C1,C2)";
    workBook.EvaluateAll();
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

簡約工作流程(5 步驟)

  1. 下載 C# 函式庫以編輯工作表中的公式
  2. 創建新的 Excel 檔案或導入現有的
  3. 編輯或設置 Formula 屬性為單元格分配公式
  4. 通過訪問單元格的 FormattedCellValue 屬性檢索結果值
  5. 匯出編輯的 Excel 檔案


開始使用 IronXL

編輯公式範例

要編輯或設置公式,請訪問 Formula 屬性。 首先,選擇一個範圍或單元格,然後訪問並設置 Formula 屬性。 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將數字向下取整到最接近的整數。
COUNT計算指定範圍內含有數字的單元格個數。
IF執行條件測試,若條件為真返回一個值,否則返回另一個值。
SUM對一個數字範圍進行求和。
AVERAGE計算一個數字範圍的平均值。
MIN從一組數字中返回最小值。
MAX從一組數字中返回最大值。
ROW返回單元格引用的行號。
COLUMN返回單元格引用的列號。
NA表示「不可用」或缺少數據的錯誤值。
NPV按指定的折現率計算一系列現金流的凈現值。
STDEV計算一組數字的標準差。
SIGN返回數字的符號,對於負數為 -1,對於零為 0,對於正數為 1。
ROUND將數字四捨五入到指定的小數位數。
LOOKUP在範圍中查找值,並從另一範圍返回對應值。
INDEX返回指定範圍中給定行和列的單元格值。
REPT重複指定次數的文本字符串。
MID從給定的文本字符串中提取基於指定起始位置和長度的文本部分。
LEN返回文本字符串中的字符數。
VALUE將表示數字的文本字符串轉換為實際數字。
TRUE表示邏輯值「True」。
FALSE表示邏輯值「False」。
AND檢查所有指定條件是否為真,若為真則返回「True」,否則返回「False」。
OR檢查至少一個指定條件是否為真,若為真則返回「True」,否則返回「False」。
NOT反轉條件的邏輯值,把「True」變為「False」,反之亦然。
MOD返回將一個數字除以另一個數字得到的餘數。
DMIN根據指定條件從資料庫提取最小值。
VAR計算一組數字的變異數。
TEXT使用指定格式將數字轉換為文本。
PV根據一系列現金流和折現率計算投資或貸款的現值。
FV (未來值)根據定期付款和指定利率計算投資或貸款的未來值。
NPER (期數)確定需要多少付款期才能實現財務目標,給定定期付款和利率。
PMT (付款)計算償還貸款或投資所需的定期付款,包括本金和利息。
RATE (利率)計算達到財務目標所需的利率以及定期付款系列。
MIRR (修正內部報酬率)計算一系列現金流的內部報酬率,考慮到多個再投資和融資利率。
IRR (內部報酬率)計算一系列現金流的內部報酬率,指出投資盈虧平衡的利率。
RAND生成 0 到 1 之間的隨機小數。
MATCH在範圍中查找指定值並返回項目位置。
DATE通過指定年份、月份和日期創建日期值。
TIME通過指定小時、分鐘和秒創建時間值。
DAY從指定日期中提取日期。
MONTH從指定日期中提取月份。
YEAR從指定日期中提取年份。
WEEKDAY返回指定日期的星期幾。
HOUR從指定時間中提取小時。
MINUTE從指定時間中提取分鐘。
SECOND從指定時間中提取秒。
NOW返回當前日期和時間。
AREAS計算引用中的個別範圍數量。
ROWS計算指定範圍中的行數。
COLUMNS計算指定範圍中的列數。
OFFSET返回一個偏移引用,它根據指定的行和列數偏移原單元格引用。
SEARCH在文本字符串中查找子字符串,並返回其位置。
TRANSPOSE轉置範圍的行和列。
ATAN2計算指定 x 和 y 坐標的反正切。
ASIN計算指定值的反正弦。
ACOS計算指定值的反餘弦。
CHOOSE根據指定位置從值列表中返回一個值。
HLOOKUP在表或範圍的第一行中查找值,並從指定行中返回相同列的一個值。
VLOOKUP在表或範圍的第一列中查找值,並從指定列中返回相同行的值。
ISREF檢查是否為引用,若為引用則返回「True」,否則返回「False」。
LOG計算數字的對數,基數由指定。
CHAR返回由指定數字代表的字符。
LOWER將文本轉換為小寫。
UPPER將文本轉換為大寫。
PROPER將文本字符串中每個單詞的首字母轉換為大寫。
LEFT從文本字符串的開始提取指定數量的字符。
RIGHT從文本字符串的結尾提取指定數量的字符。
EXACT比較兩個文本字符串,若相同返回「True」,否則返回「False」。
TRIM從文本字符串中移除多餘的空格,單詞之間的單個空格除外。
REPLACE用新文本替換文本字符串中的指定數量的字符。
SUBSTITUTE將文本字符串中的指定文本替換為新文本。
CODE返回文本字符串中第一個字符的數值 Unicode 值。
FIND在文本字符串中查找特定子字符串,並返回其位置。
ISERR檢查是否為「#N/A」以外的錯誤值,若是則返回「True」,否則返回「False」。
ISTEXT檢查是否為文本,若是則返回「True」,否則返回「False」。
ISNUMBER檢查是否為數字,若是則返回「True」,否則返回「False」。
ISBLANK檢查單元格是否為空,若是則返回「True」,否則返回「False」。
T將值轉換為文本格式。
DATEVALUE將表示為文本的日期轉換為日期序號。
CLEAN從文本中移除不可打印字符。
MDETERM計算數組的矩陣行列式。
MINVERSE返回矩陣的乘法逆矩陣(倒數)。
MMULT將兩個矩陣相乘。
IPMT計算特定期間的貸款利息部分。
PPMT計算特定期間的貸款本金部分。
COUNTA計算範圍中非空單元格的數量,包括文本和數字。
PRODUCT將範圍內的所有數字相乘。
FACT計算數字的階乘。
ISNONTEXT檢查值是否為非文本,若非文本則返回「True」,否則返回「False」。
VARP根據樣本估算母體變異數。
TRUNC將數字截斷到指定的小數位數。
ISLOGICAL檢查值是否為邏輯(布爾)值,若是則返回「True」,否則返回「False」。
USDOLLAR將數字轉換為具有貨幣符號和兩個小數位的文本格式。
ROUNDUP將數字向上取整到指定的小數位數。
ROUNDDOWN將數字向下取整到指定的小數位數。
RANK返回列表中數字的排名,並提供處理平手的選項。
ADDRESS根據行號和列號返回文本格式的單元格位址。
DAYS360使用 360 天的一年計算兩個日期之間的天數。
TODAY返回當前日期。
MEDIAN返回一組數字的中位數(中間值)。
SUMPRODUCT將數組中的對應元素相乘,並返回乘積的和。
SINH計算數字的雙曲正弦。
COSH計算數字的雙曲餘弦。
TANH計算數字的雙曲正切。
ASINH計算數字的反雙曲正弦。
ACOSH計算數字的反雙曲餘弦。
ATANH計算數字的反雙曲正切。
ExternalFunction代表來自外部附加元件或自訂函數的函數調用或運算。
ERRORTYPE返回對應於給定值中的錯誤類型的數字。
AVEDEV計算值集在它們的平均值的平均絕對偏差。
COMBIN計算從較大集合中取出一定數量項目的組合數量。
EVEN將數字向上取整到最近的偶數整數。
FLOOR將數字向下取整到指定精度的最接近倍數。
CEILING將數字向上取整到指定精度的最接近倍數。
NORMDIST計算指定值的累積正態分佈函數。
NORMSDIST計算標准正態累積分佈函數。
NORMINV對指定概率計算正態累積分佈函數的反函數。
NORMSINV計算標准正態累積分佈函數的反函數。
STANDARDIZE將數值轉換為平均數為 0 和標準差為 1 的標準正態分佈。
ODD將數字向上取整到最近的奇數整數。
POISSON計算給定事件數的泊松分佈概率。
TDIST計算指定值和自由度的學生 t 分佈。
SUMXMY2計算兩個數組對應值差異的平方和。
SUMX2MY2計算兩個數組對應值差異的平方和。
SUMX2PY2計算兩個數組對應值和的平方和。
INTERCEPT計算趨勢線在圖表中與 y 軸的交點。
SLOPE計算趨勢線在圖表中的斜率。
DEVSQ返回數據點偏差平方和。
SUMSQ計算數字組的平方和。
LARGE返回數據集中第 k 大的值,其中 k 已指定。
SMALL返回數據集中第 k 小的值,其中 k 已指定。
PERCENTILE返回數據集中第 k 百分位數,其中 k 已指定。
PERCENTRANK返回數據集中值的階數作為總值數的百分比。
MODE返回數據集中最常出現的值。
CONCATENATE將多個文本字符串合併為一個。
POWER將數字提升到指定的次方。
RADIANS將度數轉換為弧度。
DEGREES將弧度轉換為度數。
SUBTOTAL在範圍內執行各種計算(例如,計算總和、平均),您可以選擇是否包括或排除範圍內的其他 SUBTOTAL 結果。
SUMIF將滿足指定條件的範圍中的所有數字加起來。
COUNTIF計算滿足指定條件的範圍中的單元格數。
COUNTBLANK計算範圍中空單元格的數量。
ROMAN將阿拉伯數字轉換為羅馬數字。
HYPERLINK創建一個到網頁或文件的超鏈接。
MAXA從一組數字中返回最大值,包括文本和邏輯值。
MINA從一組數中返回最小值,包括文本和邏輯值。

常見問題解答

如何使用 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,686,155 | 版本: 2025.11 剛剛發布