如何使用 IronXL 在 C# 中新增命名範圍。
命名區域是指由唯一名稱識別的指定儲存格區域。 你可以給一個區域指定一個名稱,而不是透過儲存格位址(例如 A1:B10)來引用它,這樣在公式和函數中更容易引用和理解它。 例如,如果您將某個區域命名為"SalesData",則可以在類似SUM(SalesData)的公式中引用它,而無需直接指定儲存格區域。
在使用 C# 中的 Excel 公式時,命名範圍尤其有用,因為它們可以讓您的程式碼更具可讀性和可維護性。 當與 IronXL.Excel 強大的 範圍選擇功能結合時,命名範圍就成為有效管理試算表的必要工具。
快速入門:使用 IronXL 一行人新增命名範圍
使用 IronXL 定義命名範圍,只需呼叫一個方法。 選擇您的範圍並應用 SaveAsNamedRange 方法。
立即開始使用 NuGet 建立 PDF 檔案:
使用 NuGet 套件管理器安裝 IronXL
複製並運行這段程式碼。
new IronXL.WorkBook() .DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true);部署到您的生產環境進行測試
最小工作流程(5 個步驟)
- 下載 C# 庫以新增命名範圍
- 使用
workSheet["A1:A5"]選擇目標範圍 - 使用
AddNamedRange方法新增命名範圍 - 以各種方式檢索命名範圍
- 使用
RemoveNamedRange方法可以輕鬆刪除命名範圍。
如何在工作表中新增命名範圍? 若要新增命名範圍,請使用`AddNamedRange`方法,並將命名範圍的名稱作為文字傳遞給該範圍物件。 本方法是 IronXL.Excel 全面的 [ 工作表管理](https://ironsoftware.com/csharp/excel/how-to/manage-worksheet/)功能的一部分。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-add-named-range.cs ``` 在建立命名範圍時,必須遵循 Excel 的命名慣例: - 名稱必須以字母或下劃線開頭 - 名稱不能包含空格(使用下劃線代替) - 名稱不能與儲存格引用(如 "A1 "或 "R1C1")衝突 - 名稱不區分大小寫,但保持一致的大小寫可提高可讀性。
也可以為非連續的選項或整行/列建立命名範圍。 如需更複雜的範圍操作,請參閱 [ 整合多個 Excel 範圍](https://ironsoftware.com/csharp/excel/examples/combine-excel-ranges/)的指南。
如何從我的工作簿中擷取已命名的範圍?什麼方法可以一次取得所有已命名的範圍? `GetNamedRanges` 方法會以字串清單的形式傳回工作表中所有已命名的範圍。 當您需要審核或記錄工作簿中的所有命名範圍時,此功能尤其有用,類似於 [ 載入現有試算表](https://ironsoftware.com/csharp/excel/how-to/load-spreadsheet/)以分析其結構的方式。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-all-named-range.cs ```如何根據名稱查找特定的命名範圍? 使用`FindNamedRange`方法檢索命名區域的絕對引用,例如`Sheet1!$A$1:$A$5` 。 然後可以使用位址公式來引用命名範圍,或選擇與命名範圍對應的範圍。 選擇區域時,請注意工作表名稱。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-specific-named-range.cs ``` ### 在多個工作表中使用命名範圍。 命名範圍可以是工作簿等級或工作表等級的範圍。 工作簿層級的名稱可從任何工作表存取,而工作表層級的名稱只能在其特定的工作表中存取。 在 [ 管理 Excel 檔案中的多個工作表](https://ironsoftware.com/csharp/excel/how-to/manage-worksheet/)時,這種區別非常重要。 ```csharp // Example: Accessing named ranges from different worksheets WorkBook workBook = WorkBook.Load("multisheet.xlsx"); WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1"); WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2"); // Both can access a workbook-level named range var range1 = sheet1["GlobalData"]; var range2 = sheet2["GlobalData"]; // Same named range ```
如何從工作表中移除命名範圍? 若要刪除命名範圍,請使用`RemoveNamedRange`方法,並將命名範圍名稱作為文字傳遞。 這對於維持整潔、有條理的工作簿,以及在更新試算表結構時防止命名衝突是非常重要的。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-remove-named-range.cs ``` ## 進階命名範圍情境 ### 使用公式命名範圍 當與 Excel 公式一起使用時,命名範圍才能真正發揮作用。 這些工具讓公式更具可讀性,也更容易維護。 如需全面的公式管理,請參閱 [C# 中的 Excel 公式指南](https://ironsoftware.com/csharp/excel/examples/excel-formulas-csharp/)。 ```csharp // Create named ranges for formula use WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.DefaultWorkSheet; // Create sample data workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 }; workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 }; // Add named ranges workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]); workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]); // Use named ranges in formulas workSheet["D1"].Formula = "=SUM(FirstColumn)"; workSheet["D2"].Formula = "=AVERAGE(SecondColumn)"; workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)"; // Evaluate formulas workSheet.EvaluateAll(); ``` ### 動態命名範圍 雖然 IronXL.Excel 並不直接支援 Excel 的動態命名範圍 (使用 OFFSET 或 INDEX 函式),但您可以根據資料變更,以程式化的方式更新命名範圍: ```csharp // Update named range based on data size WorkBook workBook = WorkBook.Load("dynamicData.xlsx"); WorkSheet workSheet = workBook.DefaultWorkSheet; // Find last row with data int lastRow = 1; while (!workSheet[$"A{lastRow}"].IsEmpty) { lastRow++; } lastRow--; // Adjust to actual last row // Remove old range and add new one workSheet.RemoveNamedRange("DataRange"); workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]); ``` ### 資料驗證的命名範圍 命名範圍非常適合建立資料驗證清單和約束。 當與 [Excel 的資料驗證功能](https://ironsoftware.com/csharp/excel/how-to/set-cell-data-format/)結合時,它們提供了一個強大的方式來確保資料的完整性: ```csharp // Create a named range for validation list workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" }; workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]); // Apply to data validation (conceptual example) // The actual validation would reference "ValidationList" ``` ## 最佳實務與效能提示 1.**命名慣例**:使用描述性、一致的名稱,並指出資料的用途(例如:`Sales_Q1_2024`,而不是"Data1")。 2.**範圍管理**:有意識地設定工作簿與工作表的範圍,以避免衝突 3.**Documentation**:維護已命名範圍的清單及其用途,尤其是在複雜的工作簿中 4.**效能**:命名範圍對效能的影響極小,但請避免建立數以千計的微小命名範圍。 5.**更新**:當資料結構改變時,更新或移除對應的命名範圍以維持精確性 如需更多進階 Excel 操作和效能最佳化,請探索 [ 完整的 IronXL 文件](https://ironsoftware.com/csharp/excel/docs/),或查看特定功能,例如 [ 排序 Excel 範圍](https://ironsoftware.com/csharp/excel/examples/sort-excel-range-csharp/) 或 [ 使用 Excel 表格](https://ironsoftware.com/csharp/excel/how-to/named-table/)。

什麼方法可以一次取得所有已命名的範圍? `GetNamedRanges` 方法會以字串清單的形式傳回工作表中所有已命名的範圍。 當您需要審核或記錄工作簿中的所有命名範圍時,此功能尤其有用,類似於 [ 載入現有試算表](https://ironsoftware.com/csharp/excel/how-to/load-spreadsheet/)以分析其結構的方式。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-all-named-range.cs ```如何根據名稱查找特定的命名範圍? 使用`FindNamedRange`方法檢索命名區域的絕對引用,例如`Sheet1!$A$1:$A$5` 。 然後可以使用位址公式來引用命名範圍,或選擇與命名範圍對應的範圍。 選擇區域時,請注意工作表名稱。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-specific-named-range.cs ``` ### 在多個工作表中使用命名範圍。 命名範圍可以是工作簿等級或工作表等級的範圍。 工作簿層級的名稱可從任何工作表存取,而工作表層級的名稱只能在其特定的工作表中存取。 在 [ 管理 Excel 檔案中的多個工作表](https://ironsoftware.com/csharp/excel/how-to/manage-worksheet/)時,這種區別非常重要。 ```csharp // Example: Accessing named ranges from different worksheets WorkBook workBook = WorkBook.Load("multisheet.xlsx"); WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1"); WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2"); // Both can access a workbook-level named range var range1 = sheet1["GlobalData"]; var range2 = sheet2["GlobalData"]; // Same named range ```
如何從工作表中移除命名範圍? 若要刪除命名範圍,請使用`RemoveNamedRange`方法,並將命名範圍名稱作為文字傳遞。 這對於維持整潔、有條理的工作簿,以及在更新試算表結構時防止命名衝突是非常重要的。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-remove-named-range.cs ``` ## 進階命名範圍情境 ### 使用公式命名範圍 當與 Excel 公式一起使用時,命名範圍才能真正發揮作用。 這些工具讓公式更具可讀性,也更容易維護。 如需全面的公式管理,請參閱 [C# 中的 Excel 公式指南](https://ironsoftware.com/csharp/excel/examples/excel-formulas-csharp/)。 ```csharp // Create named ranges for formula use WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.DefaultWorkSheet; // Create sample data workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 }; workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 }; // Add named ranges workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]); workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]); // Use named ranges in formulas workSheet["D1"].Formula = "=SUM(FirstColumn)"; workSheet["D2"].Formula = "=AVERAGE(SecondColumn)"; workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)"; // Evaluate formulas workSheet.EvaluateAll(); ``` ### 動態命名範圍 雖然 IronXL.Excel 並不直接支援 Excel 的動態命名範圍 (使用 OFFSET 或 INDEX 函式),但您可以根據資料變更,以程式化的方式更新命名範圍: ```csharp // Update named range based on data size WorkBook workBook = WorkBook.Load("dynamicData.xlsx"); WorkSheet workSheet = workBook.DefaultWorkSheet; // Find last row with data int lastRow = 1; while (!workSheet[$"A{lastRow}"].IsEmpty) { lastRow++; } lastRow--; // Adjust to actual last row // Remove old range and add new one workSheet.RemoveNamedRange("DataRange"); workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]); ``` ### 資料驗證的命名範圍 命名範圍非常適合建立資料驗證清單和約束。 當與 [Excel 的資料驗證功能](https://ironsoftware.com/csharp/excel/how-to/set-cell-data-format/)結合時,它們提供了一個強大的方式來確保資料的完整性: ```csharp // Create a named range for validation list workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" }; workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]); // Apply to data validation (conceptual example) // The actual validation would reference "ValidationList" ``` ## 最佳實務與效能提示 1.**命名慣例**:使用描述性、一致的名稱,並指出資料的用途(例如:`Sales_Q1_2024`,而不是"Data1")。 2.**範圍管理**:有意識地設定工作簿與工作表的範圍,以避免衝突 3.**Documentation**:維護已命名範圍的清單及其用途,尤其是在複雜的工作簿中 4.**效能**:命名範圍對效能的影響極小,但請避免建立數以千計的微小命名範圍。 5.**更新**:當資料結構改變時,更新或移除對應的命名範圍以維持精確性 如需更多進階 Excel 操作和效能最佳化,請探索 [ 完整的 IronXL 文件](https://ironsoftware.com/csharp/excel/docs/),或查看特定功能,例如 [ 排序 Excel 範圍](https://ironsoftware.com/csharp/excel/examples/sort-excel-range-csharp/) 或 [ 使用 Excel 表格](https://ironsoftware.com/csharp/excel/how-to/named-table/)。
如何從工作表中移除命名範圍? 若要刪除命名範圍,請使用`RemoveNamedRange`方法,並將命名範圍名稱作為文字傳遞。 這對於維持整潔、有條理的工作簿,以及在更新試算表結構時防止命名衝突是非常重要的。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/named-range-remove-named-range.cs ``` ## 進階命名範圍情境 ### 使用公式命名範圍 當與 Excel 公式一起使用時,命名範圍才能真正發揮作用。 這些工具讓公式更具可讀性,也更容易維護。 如需全面的公式管理,請參閱 [C# 中的 Excel 公式指南](https://ironsoftware.com/csharp/excel/examples/excel-formulas-csharp/)。 ```csharp // Create named ranges for formula use WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.DefaultWorkSheet; // Create sample data workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 }; workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 }; // Add named ranges workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]); workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]); // Use named ranges in formulas workSheet["D1"].Formula = "=SUM(FirstColumn)"; workSheet["D2"].Formula = "=AVERAGE(SecondColumn)"; workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)"; // Evaluate formulas workSheet.EvaluateAll(); ``` ### 動態命名範圍 雖然 IronXL.Excel 並不直接支援 Excel 的動態命名範圍 (使用 OFFSET 或 INDEX 函式),但您可以根據資料變更,以程式化的方式更新命名範圍: ```csharp // Update named range based on data size WorkBook workBook = WorkBook.Load("dynamicData.xlsx"); WorkSheet workSheet = workBook.DefaultWorkSheet; // Find last row with data int lastRow = 1; while (!workSheet[$"A{lastRow}"].IsEmpty) { lastRow++; } lastRow--; // Adjust to actual last row // Remove old range and add new one workSheet.RemoveNamedRange("DataRange"); workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]); ``` ### 資料驗證的命名範圍 命名範圍非常適合建立資料驗證清單和約束。 當與 [Excel 的資料驗證功能](https://ironsoftware.com/csharp/excel/how-to/set-cell-data-format/)結合時,它們提供了一個強大的方式來確保資料的完整性: ```csharp // Create a named range for validation list workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" }; workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]); // Apply to data validation (conceptual example) // The actual validation would reference "ValidationList" ``` ## 最佳實務與效能提示 1.**命名慣例**:使用描述性、一致的名稱,並指出資料的用途(例如:`Sales_Q1_2024`,而不是"Data1")。 2.**範圍管理**:有意識地設定工作簿與工作表的範圍,以避免衝突 3.**Documentation**:維護已命名範圍的清單及其用途,尤其是在複雜的工作簿中 4.**效能**:命名範圍對效能的影響極小,但請避免建立數以千計的微小命名範圍。 5.**更新**:當資料結構改變時,更新或移除對應的命名範圍以維持精確性 如需更多進階 Excel 操作和效能最佳化,請探索 [ 完整的 IronXL 文件](https://ironsoftware.com/csharp/excel/docs/),或查看特定功能,例如 [ 排序 Excel 範圍](https://ironsoftware.com/csharp/excel/examples/sort-excel-range-csharp/) 或 [ 使用 Excel 表格](https://ironsoftware.com/csharp/excel/how-to/named-table/)。
常見問題解答
如何使用 C# 在 Excel 中建立命名範圍?
若要在 Excel 中使用 C# 與 IronXL.Excel 建立命名範圍,請使用工作表索引器選擇您的目標範圍 (例如,workSheet["A1:B2"]),然後以您想要的名稱呼叫 SaveAsNamedRange 方法。您也可以使用 AddNamedRange 方法,傳入名稱為文字和範圍物件。
Excel 命名範圍的命名規則是什麼?
使用 IronXL 建立命名範圍時,請遵循這些 Excel 命名慣例:名稱必須以字母或下劃線開頭,不能包含空格(使用下劃線代替),不能與「A1」等單元格參照衝突,並且不區分大小寫。當您建立命名範圍時,IronXL 會自動執行這些規則。
我可以用程式擷取 Excel 工作簿中所有已命名的範圍嗎?
是的,IronXL 提供了 GetNamedRanges 方法,可以將工作表中所有已命名的範圍以字串清單的形式返回。在審核或記錄載入 IronXL 的現有工作簿中的命名範圍時,此功能特別有用。
命名範圍如何在 C# 中改善我的 Excel 公式?
在使用 IronXL.Excel 時,命名範圍可使 Excel 公式更具可讀性和可維護性。您可以在公式中使用類似「SalesData」的描述性名稱,取代使用「A1:B10」這樣的單元格參照,讓您的 C# 程式碼更清晰易懂。
是否可以為非連續的儲存格建立命名範圍?
是的,IronXL 支援為非連續選項和整行或整列建立命名範圍。該函式庫的全面工作表管理功能可讓您定義複雜的命名範圍,而不只是簡單的矩形選取。
在一行代碼中添加命名範圍的最快方法是什麼?
使用 IronXL,您可以在單一行中建立命名範圍,使用:new IronXL.WorkBook().DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange",true)。這示範了 IronXL.Excel 簡化操作 Excel 的 API。
如何從 Excel 工作表中移除命名範圍?
IronXL 提供 RemoveNamedRange 方法,可輕鬆刪除工作表中的命名範圍。這是函式庫完整命名範圍管理功能的一部分,可讓您以程式化的方式新增、擷取和移除命名範圍。






