如何使用 IronXL.Excel 在 C# 中使用數學函數進行Excel資料擷取
IronXL 允許直接在 C# 中進行Excel資料擷取,對 Excel 資料使用數學聚合函數,例如 Min 以及 Max。 在任何儲存格範圍內使用簡單的單行方法計算總數和分析數值資料,而無需 Interop。 無論是建立財務報告、分析銷售資料或處理科學測量,IronXL.Excel 內建的數學功能都能在 .NET 應用程式中簡化 Excel 自動化工作流程。
快速入門:使用 IronXL 在一行中執行 Sum 和 Max
使用 IronXL,可立即從任何範圍計算 sum 和 maximum 等聚合值。 這些一行式方法可以快速輕鬆地分析數值數據,而無需編寫樣板程式碼。 函式庫會處理所有解析,並自動忽略非數字內容。
最小工作流程(5 個步驟)
- 下載用於使用聚合函數的 C# 函式庫
- 載入現有 Excel 文件
- 選擇要聚合的所需範圍、行或列
- 呼叫可用的數學函數,例如`Sum` 、 `Avg` 、 `Min`或`Max`
- 根據結果進行進一步計算
如何在 Excel 中使用 C# 匯總函數?
在 Excel 試算表中處理儲存格範圍時,您可以利用各種匯總功能來執行計算。 IronXL 提供與 Excel 內建函數相仿的數學運算,讓您不需安裝 Microsoft Office 即可輕鬆地 在 C# 中操縱 Excel 資料。 以下是必要的方法:
Sum()方法會計算選取儲存格的總和。Avg()方法用於計算選取儲存格的平均值。Min()方法可識別選取範圍內單元格中的最小數值。Max()方法會找出選取範圍內數值的最大值。
這些功能是從 Excel 試算表中分析資料並獲得有意義的洞察力的重要工具。 這些工具可自動處理各種數值格式,包括整數、小數、幣值和百分比。 在處理大型資料集時,相較於手動單元迭代,這些方法可提供卓越的效能。
:path=/static-assets/excel/content-code-examples/how-to/math-functions-math-functions.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Get range from worksheet
var range = workSheet["A1:A8"];
// Calculate the sum of numeric cells within the range
decimal sum = range.Sum();
// Calculate the average value of numeric cells within the range
decimal avg = range.Avg();
// Identify the maximum value among numeric cells within the range
decimal max = range.Max();
// Identify the minimum value among numeric cells within the range
decimal min = range.Min();
Imports IronXL
Imports System.Linq
Dim workBook As WorkBook = WorkBook.Load("sample.xls")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Get range from worksheet
Dim range = workSheet("A1:A8")
' Calculate the sum of numeric cells within the range
Dim sum As Decimal = range.Sum()
' Calculate the average value of numeric cells within the range
Dim avg As Decimal = range.Avg()
' Identify the maximum value among numeric cells within the range
Dim max As Decimal = range.Max()
' Identify the minimum value among numeric cells within the range
Dim min As Decimal = range.Min()
哪些數學函數可用?
除了核心聚合功能之外,IronXL 還支援一套全面的數學運算,可與 C# Excel 工作流程無縫整合。 每個功能都經過效能與精確度的最佳化:
Sum() 方法可計算選取儲存格的總和,非常適合用於財務總計、庫存盤點或累積計算。 它能有效率地處理數以千計的單元,同時維持小數點的精確度。
Avg() 方法用於計算選取儲存格的平均值,非常適合用於計算平均分數、平均銷售額或進行統計分析。 此功能會自動排除空單元格和非數字值。
Min() 方法可識別選取範圍內最小數值,適用於查找最低價格、最小閾值或資料分析中的基準值。
Max() 方法可找出選定儲存格中的最大數值,對於識別資料集中的峰值、最高分數或上限至關重要。
這些數學功能可與 IronXL.Excel 的其他功能(如 單元格格式化和 公式支援)無縫配合,實現全面的 Excel 自動化情境。
如何在 C# 中計算總和 (總計)?
Sum() 方法會計算選取範圍內所有數值的總和,並對儲存格執行數學求和運算 (Σ)。 這使其非常適合用於財務總計、庫存盤點以及跨大型資料集的累積計算。
使用方括號標記 ["B2:B50"] 來指定特定範圍,並在一行內計算總和:
using IronXL;
WorkBook workBook = WorkBook.Load("sales-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate total sales from range
decimal totalSales = sheet["B2:B50"].Sum();
Console.WriteLine($"Total Sales: ${totalSales:N2}");
using IronXL;
WorkBook workBook = WorkBook.Load("sales-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate total sales from range
decimal totalSales = sheet["B2:B50"].Sum();
Console.WriteLine($"Total Sales: ${totalSales:N2}");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("sales-data.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Calculate total sales from range
Dim totalSales As Decimal = sheet("B2:B50").Sum()
Console.WriteLine($"Total Sales: {totalSales:N2}")
如何在 C# 中計算平均值?
Avg() 函式可計算選取儲存格的算術平均值,非常適合用於計算平均分數、平均銷售額,或對資料集進行統計分析。
此方法會傳回一個 decimal 值,其具備完整精確度,可進行精確的統計運算:
using IronXL;
WorkBook workBook = WorkBook.Load("student-grades.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate average grade for a student
decimal avgGrade = sheet["C2:C10"].Avg();
Console.WriteLine($"Average Grade: {avgGrade:F2}");
using IronXL;
WorkBook workBook = WorkBook.Load("student-grades.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Calculate average grade for a student
decimal avgGrade = sheet["C2:C10"].Avg();
Console.WriteLine($"Average Grade: {avgGrade:F2}");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("student-grades.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Calculate average grade for a student
Dim avgGrade As Decimal = sheet("C2:C10").Avg()
Console.WriteLine($"Average Grade: {avgGrade:F2}")
如何在 C# 中找出最小值?
Min() 方法用於識別範圍內的最小數值。 除了尋找最低價格或最低門檻等商業應用外,此功能在數學情境中亦極具價值,例如判定下界、識別座標資料中的頂點,或為統計分析建立基準值。
直接在任何範圍內套用 Min(),即可立即掃描數百個數值:
using IronXL;
WorkBook workBook = WorkBook.Load("product-prices.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the lowest price
decimal lowestPrice = sheet["D2:D100"].Min();
Console.WriteLine($"Lowest Price: ${lowestPrice:N2}");
using IronXL;
WorkBook workBook = WorkBook.Load("product-prices.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the lowest price
decimal lowestPrice = sheet["D2:D100"].Min();
Console.WriteLine($"Lowest Price: ${lowestPrice:N2}");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("product-prices.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Find the lowest price
Dim lowestPrice As Decimal = sheet("D2:D100").Min()
Console.WriteLine($"Lowest Price: ${lowestPrice:N2}")
如何在 C# 中發揮最大價值?
Max() 方法用於找出範圍內最大的數值。 無論是識別商業分析中的峰值、尋找幾何計算中的最大頂點,還是確定數學模型中的上界,此函式都能簡化您資料集中的極端值分析流程。
透過單一 Max() 呼叫,即可處理大型資料集(例如整年的每日讀數 E2:E365):
using IronXL;
WorkBook workBook = WorkBook.Load("temperature-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the highest temperature recorded
decimal maxTemp = sheet["E2:E365"].Max();
Console.WriteLine($"Highest Temperature: {maxTemp:F1}°F");
using IronXL;
WorkBook workBook = WorkBook.Load("temperature-data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Find the highest temperature recorded
decimal maxTemp = sheet["E2:E365"].Max();
Console.WriteLine($"Highest Temperature: {maxTemp:F1}°F");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("temperature-data.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Find the highest temperature recorded
Dim maxTemp As Decimal = sheet("E2:E365").Max()
Console.WriteLine($"Highest Temperature: {maxTemp:F1}°F")
我可以聚合哪些資料類型?
這些功能是分析資料和從 Excel 試算表中獲得洞察力的重要工具。 IronXL.Excel 的數學函數支援 Excel 檔案中常見的各種數值資料類型:
- 整數與十進位數:以完整精確度處理的標準數值
- 貨幣值:貨幣金額應正確解析並包含貨幣符號
- 百分比:計算中的百分比數值應妥善處理
- 科學記法:支援以科學格式顯示大數或小數
- 日期序列號:Excel 內部日期表示法,可在需要時進行彙總
當處理混合資料類型時,IronXL 會智慧地處理轉換,確保結果精確。 對於涉及多個工作表或工作簿的複雜情況,您可以輕鬆地同時載入和處理多個 Excel 檔案。
以下是一個示範範例,展示不同數值格式的聚合:
using IronXL;
// Load workbook containing various numeric formats
WorkBook workBook = WorkBook.Load("financial-data.xlsx");
WorkSheet salesSheet = workBook.GetWorkSheet("Q4Sales");
// Calculate total revenue from currency-formatted cells
decimal totalRevenue = salesSheet["B2:B50"].Sum();
Console.WriteLine($"Total Q4 Revenue: ${totalRevenue:N2}");
// Find the highest individual sale amount
decimal maxSale = salesSheet["B2:B50"].Max();
Console.WriteLine($"Largest Sale: ${maxSale:N2}");
// Calculate average sale amount
decimal avgSale = salesSheet["B2:B50"].Avg();
Console.WriteLine($"Average Sale: ${avgSale:N2}");
// Process percentage data (e.g., tax rates)
decimal avgTaxRate = salesSheet["D2:D50"].Avg();
Console.WriteLine($"Average Tax Rate: {avgTaxRate:P2}");
using IronXL;
// Load workbook containing various numeric formats
WorkBook workBook = WorkBook.Load("financial-data.xlsx");
WorkSheet salesSheet = workBook.GetWorkSheet("Q4Sales");
// Calculate total revenue from currency-formatted cells
decimal totalRevenue = salesSheet["B2:B50"].Sum();
Console.WriteLine($"Total Q4 Revenue: ${totalRevenue:N2}");
// Find the highest individual sale amount
decimal maxSale = salesSheet["B2:B50"].Max();
Console.WriteLine($"Largest Sale: ${maxSale:N2}");
// Calculate average sale amount
decimal avgSale = salesSheet["B2:B50"].Avg();
Console.WriteLine($"Average Sale: ${avgSale:N2}");
// Process percentage data (e.g., tax rates)
decimal avgTaxRate = salesSheet["D2:D50"].Avg();
Console.WriteLine($"Average Tax Rate: {avgTaxRate:P2}");
Imports IronXL
' Load workbook containing various numeric formats
Dim workBook As WorkBook = WorkBook.Load("financial-data.xlsx")
Dim salesSheet As WorkSheet = workBook.GetWorkSheet("Q4Sales")
' Calculate total revenue from currency-formatted cells
Dim totalRevenue As Decimal = salesSheet("B2:B50").Sum()
Console.WriteLine($"Total Q4 Revenue: {totalRevenue:N2}")
' Find the highest individual sale amount
Dim maxSale As Decimal = salesSheet("B2:B50").Max()
Console.WriteLine($"Largest Sale: {maxSale:N2}")
' Calculate average sale amount
Dim avgSale As Decimal = salesSheet("B2:B50").Avg()
Console.WriteLine($"Average Sale: {avgSale:N2}")
' Process percentage data (e.g., tax rates)
Dim avgTaxRate As Decimal = salesSheet("D2:D50").Avg()
Console.WriteLine($"Average Tax Rate: {avgTaxRate:P2}")
我可以對行和列套用函數嗎?
為了增加彈性,這些功能也可以套用在單一或多行與列上。 進一步了解 選擇範圍,包括整行和整列。 在處理需要特定維度計算的結構化資料時,這項能力尤其有用。
您可以將數學函數應用於
- 整列:計算完整資料欄位的總和
- 整行:針對基於行的記錄進行值彙總
- 多重範圍:結合多個選取範圍進行複雜計算
- 命名範圍:使用命名範圍以確保程式碼易於維護
以下是一個顯示行和列聚合的實用範例:
using IronXL;
WorkBook workBook = WorkBook.Load("quarterly-report.xlsx");
WorkSheet dataSheet = workBook.DefaultWorkSheet;
// Calculate sum for entire column (e.g., all sales data)
decimal columnTotal = dataSheet.GetColumn(1).Sum(); // Column B
// Calculate average for entire row (e.g., monthly averages)
decimal rowAverage = dataSheet.GetRow(4).Avg(); // Row 5
// Work with multiple columns simultaneously
for (int col = 1; col <= 12; col++) // Columns B through M
{
decimal monthlyTotal = dataSheet.GetColumn(col).Sum();
Console.WriteLine($"Month {col} Total: ${monthlyTotal:N2}");
}
// Calculate grand total across multiple ranges
var q1Range = dataSheet["B2:D50"];
var q2Range = dataSheet["E2:G50"];
decimal firstHalfTotal = q1Range.Sum() + q2Range.Sum();
using IronXL;
WorkBook workBook = WorkBook.Load("quarterly-report.xlsx");
WorkSheet dataSheet = workBook.DefaultWorkSheet;
// Calculate sum for entire column (e.g., all sales data)
decimal columnTotal = dataSheet.GetColumn(1).Sum(); // Column B
// Calculate average for entire row (e.g., monthly averages)
decimal rowAverage = dataSheet.GetRow(4).Avg(); // Row 5
// Work with multiple columns simultaneously
for (int col = 1; col <= 12; col++) // Columns B through M
{
decimal monthlyTotal = dataSheet.GetColumn(col).Sum();
Console.WriteLine($"Month {col} Total: ${monthlyTotal:N2}");
}
// Calculate grand total across multiple ranges
var q1Range = dataSheet["B2:D50"];
var q2Range = dataSheet["E2:G50"];
decimal firstHalfTotal = q1Range.Sum() + q2Range.Sum();
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("quarterly-report.xlsx")
Dim dataSheet As WorkSheet = workBook.DefaultWorkSheet
' Calculate sum for entire column (e.g., all sales data)
Dim columnTotal As Decimal = dataSheet.GetColumn(1).Sum() ' Column B
' Calculate average for entire row (e.g., monthly averages)
Dim rowAverage As Decimal = dataSheet.GetRow(4).Avg() ' Row 5
' Work with multiple columns simultaneously
For col As Integer = 1 To 12 ' Columns B through M
Dim monthlyTotal As Decimal = dataSheet.GetColumn(col).Sum()
Console.WriteLine($"Month {col} Total: ${monthlyTotal:N2}")
Next
' Calculate grand total across multiple ranges
Dim q1Range = dataSheet("B2:D50")
Dim q2Range = dataSheet("E2:G50")
Dim firstHalfTotal As Decimal = q1Range.Sum() + q2Range.Sum()
對於進階的 Excel 操作情境,請將這些數學函數與其他 IronXL 功能結合,例如 建立圖表、套用條件格式化,或 匯出至不同格式。 這使得 IronXL.Excel 成為 .NET 應用程式中 Excel 自動化的全面解決方案,無論是建立報表工具、資料分析系統或商業智慧儀表板。
常見問題解答
如何在 Excel 中使用 C# 計算單元格的總和?
使用 IronXL,您可以使用簡單的單行方法計算任何單元格範圍的總和:十進制總計 = workSheet["A1:A8"].Sum()。此方法可自動處理所有數值格式,包括整數、小數、貨幣值和百分比,同時忽略非數字內容。
C# 中有哪些數學函數可用於 Excel 資料分析?
IronXL 提供基本的數學運算,包括 Sum() 用於求總數、Avg() 用於求平均數、Min() 用於求最小值,以及 Max() 用於求最大值。這些函數反映 Excel 的內建功能,並可在任何儲存格範圍內無縫運作,而無需安裝 Microsoft Office。
我可以在沒有安裝 Microsoft Office 的情況下執行 Excel 計算嗎?
是的,IronXL 可讓您直接在 C# 中執行所有 Excel 數學函數,而不需要 Microsoft Office 或 Interop。該函式庫可獨立處理 Excel 檔案操作,因此非常適合伺服器環境和自動化工作流程。
IronXL 如何處理計算中的非數字值?
IronXL 自動排除所有數學計算中的非數字值。當使用 Sum()、Avg()、Min() 或 Max() 等函數時,函式庫會智慧地解析儲存格內容,並只包含有效的數值資料,以確保無須手動清理資料即可得到精確的結果。
用 C# 在 Excel 中分析數值資料的最快方法是什麼?
IronXL 的內建聚合功能可為大型資料集提供卓越的效能。只需選擇您的範圍,並呼叫 workSheet["A1:A100「].Sum() 或 workSheet[」B1:B100"].Max() 等方法。這些最佳化的方法比手動單元格迭代快很多。
我可以在特定行或列上使用這些數學函數嗎?
是的,IronXL.Excel 的數學函數適用於任何有效的 Excel 範圍選擇,包括整行、整列或自訂範圍。您可以在選擇語法中定義適當的範圍,從電子表格的特定區域匯集資料。

