IronXL 操作指南 添加凍結窗格 如何使用 C# 在 Excel 中新增凍結窗格; Curtis Chau 更新:2026年1月10日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 在大型 Excel 試算表中,如果行數超過 50 行或列數超過 'Z',在檢視資料的同時又要保持標題可見,就變得相當具有挑戰性。 C# 中的 "凍結窗格 "功能提供了一個優雅的解決方案,它可以鎖定特定的行和列,同時允許其餘的行和列自由捲動。 當您處理財務報表、員工資料庫或庫存清單時,此功能變得非常重要,因為在這些情況下,您需要不斷查看列頭或行的識別碼。 透過 IronXL 的 Excel 函式庫,您可以程式化地在 .NET 應用程式中加入凍結窗格,以改善資料導覽和使用者體驗。 快速入門:將標題行和列鎖定在一行中 使用簡單的CreateFreezePane(colSplit, rowSplit)方法可以在幾秒鐘內凍結行或列。 無需複雜的設定 - 只需載入您的工作表,呼叫此方法,您的標題就會在捲動時鎖定在頂端。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronXL PM > Install-Package IronXL.Excel 複製並運行這段程式碼。 workSheet.CreateFreezePane(1, 4); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronXL,免費試用! 免費試用30天 ### 最小工作流程(5 個步驟) 若要新增凍結窗格,請依照下列步驟操作: 安裝凍結窗格所需的 C# 庫 使用帶有兩個參數的CreateFreezePane函數新增凍結窗格 使用4個參數的CreateFreezePane來新增預滾動定位的凍結窗格 將電子表格匯出為所需的文件格式 如何在 Excel 中新增凍結窗格? 凍結窗格可將行與列鎖定在原處,讓它們在捲動時仍然可見。 此功能可在快速比較資訊的同時,保持標題列或行的位置。 當使用大型資料集時,或當您需要在瀏覽大量試算表時保持上下文一致時,此功能尤其有價值。 IronXL.Excel 中的凍結窗格功能模仿 Excel 的原生功能,讓熟悉 Excel 介面的開發人員可以直覺地使用。 與 Excel Interop 解決方案不同,IronXL 提供了更有效率且伺服器友善的方法,以程式化的方式實作凍結窗格。 CreateFreezePane 如何使用 2 個參數工作? 若要新增凍結窗格,請使用CreateFreezePane方法,並指定凍結窗格應從哪一列和哪一行開始。 指定的列和行未包含在凍結窗格中。 例如,workSheet.CreateFreezePane(1, 4) 從 A 列和 1 到 4 行開始建立凍結窗格。 了解基於零的索引是至關重要的:第 0 欄指的是第 A 欄,第 1 欄指的是第 B 欄,以此類推。 行索引遵循相同的模式。 此方法非常適合在捲動資料項目時要保持標題可見的情況。 以下程式碼範例示範如何從 B 列第 4 行開始建立凍結窗格: :path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-add.cs using IronXL; using System.Linq; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.WorkSheets.First(); // Create freeze pane from column(A-B) and row(1-3) workSheet.CreateFreezePane(2, 3); workBook.SaveAs("createFreezePanes.xlsx"); Imports IronXL Imports System.Linq Private workBook As WorkBook = WorkBook.Load("sample.xlsx") Private workSheet As WorkSheet = workBook.WorkSheets.First() ' Create freeze pane from column(A-B) and row(1-3) workSheet.CreateFreezePane(2, 3) workBook.SaveAs("createFreezePanes.xlsx") $vbLabelText $csharpLabel What Does Freeze Pane Look Like in Action? 如何移除凍結窗格? 使用 RemovePane 方法從試算表中移除所有現有的凍結窗格。 當您需要根據使用者偏好或資料變更來重設檢視或套用不同的凍結設定時,這將非常有用。 :path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-remove.cs // Remove all existing freeze or split pane workSheet.RemovePane(); ' Remove all existing freeze or split pane workSheet.RemovePane() $vbLabelText $csharpLabel 哪些是進階的凍結窗格選項? CreateFreezePane方法提供了一個進階選項,用於建立具有預先捲動功能的凍結窗格。 當您想要在維持凍結窗格功能的同時,將注意力集中在試算表的特定區域時,此功能非常有用。 何時應該使用進階凍結窗格的 4 參數? 此方法可讓您根據指定的起始列和行新增凍結窗格。 此外,它還允許您在工作表中套用捲動功能。 這在使用 格式化的 Excel 報表時特別有利,因為您需要精確控制初始檢視。 例如,使用 workSheet.CreateFreezePane(5, 2, 6, 7) 可以創建一個橫跨 A-E 列和 1-2 行的凍結窗格。 它包含一個 1 列 5 行的捲軸。 工作表打開後,會顯示 列 A-E、G-... 和 行 1-2、8-...。 :path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-advance.cs using IronXL; using System.Linq; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.WorkSheets.First(); // Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll // The column will show E,G,... and the row will show 5,8,... workSheet.CreateFreezePane(5, 5, 6, 7); workBook.SaveAs("createFreezePanes.xlsx"); Imports IronXL Imports System.Linq Private workBook As WorkBook = WorkBook.Load("sample.xlsx") Private workSheet As WorkSheet = workBook.WorkSheets.First() ' Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll ' The column will show E,G,... and the row will show 5,8,... workSheet.CreateFreezePane(5, 5, 6, 7) workBook.SaveAs("createFreezePanes.xlsx") $vbLabelText $csharpLabel 進階凍結窗格是什麼樣子? 凍結窗格的實用案例 凍結窗格在各種商業情境中都非常有價值: 1.財務報告:在捲動年度資料時保持月/季標題可見 2.員工資料庫:在檢視績效指標的同時鎖定員工姓名和 ID 3.庫存管理:在檢視庫存水平的同時修正產品代碼和名稱 4.銷售儀表板:在分析區域銷售資料的同時,維持產品類別的能見度 當結合 Excel 公式時,凍結窗格可大幅提升資料分析效率。 完整範例:使用凍結窗格建立資料報告。 以下是一個綜合範例,展示如何使用凍結窗格建立格式化的報表: using IronXL; using IronXL.Styles; // Create a new workbook WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report"); // Add headers workSheet["A1"].Value = "Product ID"; workSheet["B1"].Value = "Product Name"; workSheet["C1"].Value = "Q1 Sales"; workSheet["D1"].Value = "Q2 Sales"; workSheet["E1"].Value = "Q3 Sales"; workSheet["F1"].Value = "Q4 Sales"; workSheet["G1"].Value = "Total"; // Style headers var headerRange = workSheet["A1:G1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.Color = "#FFFFFF"; // Add sample data for (int i = 2; i <= 50; i++) { workSheet[$"A{i}"].Value = $"P{i-1:D3}"; workSheet[$"B{i}"].Value = $"Product {i-1}"; workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})"; } // Apply freeze pane to keep headers visible workSheet.CreateFreezePane(0, 1); // Auto-size columns for better visibility workSheet.AutoSizeColumn(0, 6); // Save the workbook workBook.SaveAs("SalesReportWithFreezePanes.xlsx"); using IronXL; using IronXL.Styles; // Create a new workbook WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report"); // Add headers workSheet["A1"].Value = "Product ID"; workSheet["B1"].Value = "Product Name"; workSheet["C1"].Value = "Q1 Sales"; workSheet["D1"].Value = "Q2 Sales"; workSheet["E1"].Value = "Q3 Sales"; workSheet["F1"].Value = "Q4 Sales"; workSheet["G1"].Value = "Total"; // Style headers var headerRange = workSheet["A1:G1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.Color = "#FFFFFF"; // Add sample data for (int i = 2; i <= 50; i++) { workSheet[$"A{i}"].Value = $"P{i-1:D3}"; workSheet[$"B{i}"].Value = $"Product {i-1}"; workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000); workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})"; } // Apply freeze pane to keep headers visible workSheet.CreateFreezePane(0, 1); // Auto-size columns for better visibility workSheet.AutoSizeColumn(0, 6); // Save the workbook workBook.SaveAs("SalesReportWithFreezePanes.xlsx"); Imports IronXL Imports IronXL.Styles ' Create a new workbook Dim workBook As WorkBook = WorkBook.Create() Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Sales Report") ' Add headers workSheet("A1").Value = "Product ID" workSheet("B1").Value = "Product Name" workSheet("C1").Value = "Q1 Sales" workSheet("D1").Value = "Q2 Sales" workSheet("E1").Value = "Q3 Sales" workSheet("F1").Value = "Q4 Sales" workSheet("G1").Value = "Total" ' Style headers Dim headerRange = workSheet("A1:G1") headerRange.Style.Font.Bold = True headerRange.Style.BackgroundColor = "#4472C4" headerRange.Style.Font.Color = "#FFFFFF" ' Add sample data For i As Integer = 2 To 50 workSheet($"A{i}").Value = $"P{i - 1:D3}" workSheet($"B{i}").Value = $"Product {i - 1}" workSheet($"C{i}").Value = Random.Shared.Next(1000, 5000) workSheet($"D{i}").Value = Random.Shared.Next(1000, 5000) workSheet($"E{i}").Value = Random.Shared.Next(1000, 5000) workSheet($"F{i}").Value = Random.Shared.Next(1000, 5000) workSheet($"G{i}").Formula = $"=SUM(C{i}:F{i})" Next ' Apply freeze pane to keep headers visible workSheet.CreateFreezePane(0, 1) ' Auto-size columns for better visibility workSheet.AutoSizeColumn(0, 6) ' Save the workbook workBook.SaveAs("SalesReportWithFreezePanes.xlsx") $vbLabelText $csharpLabel 本範例展示凍結窗格如何與 單元格樣式 和 公式 搭配使用,以建立專業的報表。 當使用者捲動 50 行銷售資料時,標題行仍然可見。 效能考量 在大型試算表中實作凍結窗格時: 在填入資料後套用凍結窗格以獲得最佳效能 考慮使用條件格式化來強調凍結部分的重要資料 以您的目標資料量進行測試,以確保順暢的捲動效能 對於處理大量資料集的應用程式,請探索 匯出至不同格式或在凍結窗格旁實施分頁策略。 請注意只能套用一個凍結窗格設定。 任何後續建立的凍結窗格都會覆蓋先前的凍結窗格。 凍結窗格不適用於 Microsoft Excel 97-2003 版本 (.xls). 常見問題解答 什麼是凍結窗格功能,為什麼它在 Excel 試算表中很有用? 凍結窗格功能可鎖定特定的行和列,讓它們在捲動大型試算表時保持可見。這對於保持財務報告、員工資料庫或庫存清單中標題的可見性尤其有用。IronXL 提供了一個簡單的 CreateFreezePane 方法,可在 C# 應用程式中以程式化方式實現此功能。 如何在 C# 中快速新增凍結窗格以鎖定標頭行? 使用 IronXL,您只需使用 CreateFreezePane 方法,只需一行代碼即可鎖定標頭行。只需呼叫 workSheet.CreateFreezePane(1, 4) 即可鎖定列和行。這可將 A 列和行 1-4 鎖定在原處,同時允許試算表的其他部分自由捲動。 在 CreateFreezePane 中使用 2 個參數與 4 個參數有何差異? IronXL 的 CreateFreezePane 方法提供兩種選項:使用 2 個參數 (colSplit, rowSplit) 可從指定的位置建立基本的凍結窗格,而使用 4 個參數則可新增具有預滾動定位功能的凍結窗格,以對檢視區域進行更進階的控制。 設定凍結窗格時,基於零的索引如何運作? 在 IronXL 的 CreateFreezePane 方法中,索引是以 0 為基礎的。列 0 代表列 A,列 1 代表列 B,依此類推。例如,CreateFreezePane(1, 4)會從 A 列開始建立凍結窗格,並包含第 1 到第 4 行。 為何要使用此程式庫而非 Excel Interop 來凍結窗格? 相較於 Excel Interop 解決方案,IronXL.Excel 提供更有效率且伺服器友善的方法。它不需要在伺服器上安裝 Excel,為大型資料集提供更好的效能,並提供直覺的 API,可模仿 Excel 的原生功能,同時針對 .NET 應用程式進行最佳化。 我可以將具有凍結窗格的試算表匯出為不同的檔案格式嗎? 是的,使用 IronXL 的 CreateFreezePane 方法新增凍結窗格後,您可以將電子表格匯出為各種檔案格式,同時維持凍結窗格功能。當儲存為支援的 Excel 格式時,程式庫會保留這些設定。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 準備好開始了嗎? Nuget 下載 1,846,091 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:1,846,091 查看許可證