C#으로 xlsx 파일에서 고정 창을 추가하는 방법
'Z'를 넘는 50개 이상의 행이나 열이 있는 큰 Excel 스프레드시트에서는 헤더를 표시한 상태로 데이터를 보는 것이 도전이 됩니다. 엑셀 편집 시 고정 창 기능을 활용하면 xlsx 파일에서 데이터 탐색 경험을 개선할 수 있습니다. C#의 Freeze Pane 기능은 특정 행과 열을 고정하여 나머지 부분이 자유롭게 스크롤되도록 하여 우아한 해결책을 제공합니다.
이 기능은 금융 보고서, 직원 데이터베이스, 품목 목록과 같은 열 헤더나 행 식별자가 지속적으로 보이기를 원하는 경우 필수적입니다. IronXL의 Excel 라이브러리를 사용하여 프로그램적으로 고정 창을 추가하여 .NET 애플리케이션의 데이터 탐색 및 사용자 경험을 향상시킬 수 있습니다.
빠른 시작: 하나의 라인에서 헤더 행 및 열 잠금
간단한 CreateFreezePane(colSplit, rowSplit) 메서드를 사용하여 몇 초 만에 행이나 열을 고정하세요. 복잡한 설정 없이 시트를 로드하고 이 메서드를 호출하면 스크롤하면서 헤더가 상단에 고정됩니다.
스프레드시트에 고정 창을 추가하려면 다음 단계를 따르세요:
- 고정 창에 필요한 C# 라이브러리 설치
- `CreateFreezePane` 메서드와 2개 매개변수를 사용하여 고정 창 추가
- `CreateFreezePane` 메서드와 4개 매개변수를 사용하여 미리 스크롤된 위치로 고정 창 추가
- 원하는 파일 형식으로 스프레드시트를 내보내기
Excel에서 고정 창을 추가하는 방법은?
고정 창은 행과 열을 고정하여, 스크롤하면서도 해당 부분이 보이도록 합니다. 이 기능은 정보를 빠르게 비교할 때 헤더 열이나 행을 고정하는 데 유용합니다. 이 기능은 대용량 데이터셋을 다루거나 광범위한 스프레드시트를 탐색할 때 컨텍스트를 유지해야 할 때 특히 유용합니다.
IronXL의 고정 창 기능은 Excel의 기본 기능을 모방하여, Excel 인터페이스에 익숙한 개발자에게 직관적으로 작동합니다. Excel Interop 솔루션과 달리, IronXL은 프로그래밍 방식으로 고정 창을 구현하는 보다 효율적이고 서버 친화적인 접근 방식을 제공합니다.
2개의 매개변수로 CreateFreezePane은 어떻게 작동합니까?
고정 창을 추가하려면 CreateFreezePane 메서드를 사용하여 고정 창이 시작될 열과 행을 지정하세요. 지정된 열과 행은 고정 창에 포함되지 않습니다. 예를 들어, workSheet.CreateFreezePane(1, 4)을 사용하면 열 A와 행 1에서 4까지 시작하는 고정 창이 생성됩니다.
0 기준 인덱스를 이해하는 것이 중요합니다: 열 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")
고정 창은 실제로 어떻게 보입니까?
고정 창을 제거하는 방법은?
모든 기존 고정 창을 스프레드시트에서 제거하려면 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()
고급 고정 창 옵션은 무엇입니까?
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")
고급 고정 창은 어떻게 보입니까?
고정 창의 실용적인 사용 사례
고정 창은 다양한 비즈니스 시나리오에서 매우 유용합니다:
- 재무 보고서: 연간 데이터를 스크롤하면서 월/분기 헤더를 보이게 유지
- 직원 데이터베이스: 성과 메트릭을 볼 때 직원 이름과 ID 고정
- 재고 관리: 제품 코드와 이름을 고정하고 재고 수준 검토
- 판매 대시보드: 지역별 판매 데이터를 분석하면서 제품 카테고리 가시성 유지
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")
이 예제는 셀 스타일링과 수식이 포함된 고정 창이 전문 보고서를 생성하는 방법을 보여줍니다. 사용자가 50행의 판매 데이터를 스크롤하면서 헤더 행이 계속 보입니다.
성능 고려 사항
대형 스프레드시트에서 고정 창을 구현할 때:
- 최적의 성능을 위해 데이터를 채운 후 고정 창을 적용하세요.
- 고정된 섹션에서 중요한 데이터를 강조하기 위해 조건부 서식 사용을 고려하세요
- 원활한 스크롤 성능을 보장하기 위해 대상 데이터 볼륨으로 테스트하세요
방대한 데이터 세트를 처리하는 애플리케이션의 경우 다른 형식으로 내보내기 또는 고정 창과 함께 페이지 매김 전략을 구현하는 것을 탐색하세요.
자주 묻는 질문
창 고정 기능이란 무엇이며 엑셀 스프레드시트에서 왜 유용한가요?
고정 창 기능은 특정 행과 열을 고정하여 대규모 스프레드시트를 스크롤하는 동안에도 계속 보이도록 유지합니다. 이 기능은 재무 보고서, 직원 데이터베이스 또는 재고 목록의 헤더를 표시하는 데 특히 유용합니다. IronXL은 C# 애플리케이션에서 이 기능을 프로그래밍 방식으로 구현할 수 있는 간단한 CreateFreezePane 메서드를 제공합니다.
C#에서 헤더 행을 고정하기 위해 패널 고정 기능을 빠르게 추가하는 방법은 무엇인가요?
IronXL에서는 CreateFreezePane 메서드를 사용하여 단 한 줄의 코드로 헤더 행을 고정할 수 있습니다. workSheet.CreateFreezePane(1, 4)를 호출하기만 하면 열과 행이 고정됩니다. 이렇게 하면 A열과 1~4행이 고정되고 나머지 스프레드시트는 자유롭게 스크롤할 수 있습니다.
CreateFreezePane 함수에서 매개변수를 2개 사용하는 것과 4개 사용하는 것의 차이점은 무엇인가요?
IronXL의 CreateFreezePane 메서드는 두 가지 옵션을 제공합니다. 두 개의 매개변수(colSplit, rowSplit)를 사용하면 지정된 위치에서 기본 고정 패널이 생성되고, 네 개의 매개변수를 사용하면 미리 스크롤된 위치를 가진 고정 패널을 추가하여 보기 영역을 더욱 세밀하게 제어할 수 있습니다.
고정 창을 설정할 때 0부터 시작하는 인덱싱은 어떻게 작동하나요?
IronXL의 CreateFreezePane 메서드에서는 인덱싱이 0부터 시작합니다. 0번째 열은 A열을, 1번째 열은 B열을 나타냅니다. 마찬가지로 행 인덱싱도 0부터 시작합니다. 예를 들어 CreateFreezePane(1, 4)는 A열부터 시작하여 1행부터 4행까지 포함하는 프리즈 패널을 생성합니다.
창 고정 기능을 위해 Excel Interop 대신 이 라이브러리를 사용해야 하는 이유는 무엇입니까?
IronXL은 Excel Interop 솔루션에 비해 더욱 효율적이고 서버 친화적인 접근 방식을 제공합니다. 서버에 Excel을 설치할 필요가 없으며, 대규모 데이터 세트에서 더 나은 성능을 제공하고, Excel의 기본 기능을 모방하면서 .NET 애플리케이션에 최적화된 직관적인 API를 제공합니다.
창 고정 기능을 사용하여 스프레드시트를 다른 파일 형식으로 내보낼 수 있나요?
네, IronXL의 CreateFreezePane 메서드를 사용하여 패널 고정 기능을 추가한 후에는 패널 고정 기능을 유지하면서 스프레드시트를 다양한 파일 형식으로 내보낼 수 있습니다. 라이브러리는 지원되는 Excel 형식으로 저장할 때 이러한 설정을 보존합니다.

