! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

.NET 애플리케이션에서 Excel XLSX 데이터를 보호하는 5가지 방법 > 블로그 & Tips

본문 바로가기

Spread.NET

블로그 & Tips

.NET 애플리케이션에서 Excel XLSX 데이터를 보호하는 5가지 방법

페이지 정보

작성자 GCK써니 작성일 2023-02-15 16:43 조회 821회 댓글 0건

본문

9d2b9e0b24d08a86a2e71f7501b65702_1676446502_8203.png
 

데이터 보안의 중요성은 지속적으로 증가하고 있습니다. 모든 업계의 개발자는 중요한 비즈니스 활동을 수행해야 하는 승인된 최종 사용자가 데이터에 쉽게 액세스할 수 있도록 하는 동시에 중요한 기밀 데이터를 보호하기 위해 더 강력한 보안 조치를 구현해야 하는 과업을 수행하고 있습니다. 


모든 비즈니스는 Microsoft Excel 또는 다른 스프레드시트 소프트웨어를 예산 작성, 직원 정보 조직화 또는 고객 및 판매 데이터 요약과 같은 활동의 ​​필수 도구로 사용합니다. Excel을 사용하면 많은 양의 데이터를 빠르고 쉽게 분석하고 정렬할 수 있습니다. 그러나 중요한 데이터를 비즈니스 앱에서 Excel 파일로 내보낸 후에는 해당 데이터의 보안과 무결성을 보장하기 어렵습니다. 


스프레드시트 컴포넌트 및 라이브러리는 앱 내에서 그리고 사용자가 내보낸 Excel 파일에서 회사의 중요한 비즈니스 데이터를 보안하고 보호하기 위한 솔루션입니다. 개발자는 통합 문서 또는 워크시트를 보호하고 셀을 잠그고 암호를 적용하여 무단 액세스, 원치 않는 수정 또는 Excel 워크시트 및 통합 문서의 완전한 삭제를 프로그래밍 방식으로 방지할 수 있습니다.


본문에서는 .NET 애플리케이션을 사용하여 Excel 데이터를 보호하는 5가지 방법에 대해 다룹니다.


세계 판매 1위 .NET 스프레드시트 컴포넌트인 Spread.NET을 사용하여, 우리는 프로그래밍 방식으로 Excel 데이터를 보호하는 방법(C# 및 VB.NET 사용)과 개발자가 Excel과 유사한 UI 대화 상자를 사용하여 .NET 앱 런타임 중에 최종 사용자에게 Excel 데이터를 보호할 수 있는 권한을 부여하는 방법을 시연합니다. 


목차

  1. 프로그래밍 방식으로 Excel 파일(.XLSX) 보호 및 보호 해제
  2. 프로그래밍 방식으로 특정 Excel 워크시트 보호 및 보호 해제
  3. .NET 앱에서 런타임 Excel과 유사한 대화상자를 사용하여 시트 보호 옵션 구현
    a) 컨텍스트 메뉴에서 런타임 동안 시트 보호 대화상자에 접근
    b) 런타임 중에 프로그래밍 방식으로 시트 보호 대화상자 호출
  4. 프로그래밍 방식으로 워크시트의 특정 셀, 범위 및 개체 보호
  5. 프로그래밍 방식으로 Excel 통합 문서를 암호로 보호하는 방법
    a) 프로그래밍 방식으로 Excel 통합 문서에 암호 설정
    b) 프로그래밍 방식으로 Excel 워크시트에 암호 설정

 1. 프로그래밍 방식으로 Excel 파일(.XLSX) 보호 및 보호 해제  


Spread.NET의 API 코드 한 줄로 전체 Excel(XLSX) 통합 문서의 편집을 제한합니다. 이 코드에는 WorkbookLocks 열거형을 매개 변수로 전달하는 Workbook Protect 메서드가 포함되어 있습니다. WorkbookLocks 열거형은 통합 문서의 보호된 데이터를 나타냅니다 . 아래 코드에서는 통합 문서 구조 및 창을 포함한 모든 데이터가 보호되도록 All 로 설정했습니다.


C#

FpSpread fpSpread1 = new FpSpread(); // Spread.NET 초기화  
fpSpread1.AsWorkbook().Protect(WorkbookLocks.All); // Excel 통합 문서 보호


VB.NET

FpSpread fpSpread1 = new FpSpread() 'Spread.NET 초기화
fpSpread1.AsWorkbook().Protect(WorkbookLocks.All) 'Excel 통합 문서 보호


프로그래밍 방식으로 .NET 애플리케이션에서 Excel 통합 문서의 보호를 해제하려면, 다음과 같이 Spread.NET 통합 문서의 Unprotect 메서드를 호출합니다.


C#

FpSpread fpSpread1 = new FpSpread(); // Spread.NET 초기화
fpSpread1.AsWorkbook().Unprotect(); // Excel 통합 문서 보호 해제


VB.NET

FpSpread fpSpread1 = new FpSpread() 'Spread.NET 초기화
fpSpread1.AsWorkbook().Unprotect() 'Excel 통합 문서 보호 해제


 2. 프로그래밍 방식으로 특정 Excel 워크시트 보호 및 보호 해제  


사용자는 Excel 통합 문서에서 특정 워크시트를 보호해야 할 수 있습니다. Spread.NET을 사용하여, .NET 개발자는 프로그래밍 방식으로 워크시트에 보호를 적용할 수 있습니다. 이때 워크시트의 Protect 메서드를 사용하고, Protect 메서드는 워크시트의 보호된 데이터를 나타내고 워크시트가 잠겼을 때 사용될 특정 동작을 지정하는 데 사용되는 WorksheetLocks 열거형을 사용합니다. 


WorksheetLocks 열거형을 사용하여 사용자 지정 워크시트 보호 설정을 지정하는 방법에 대해서는 본문의 뒷부분에서 자세히 알아보실 수 있습니다. 


C#

fpSpread1.LegacyBehaviors = LegacyBehaviors.None;
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.All);


VB.NET

fpSpread1.LegacyBehaviors = LegacyBehaviors.None
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.All)


사용자는 Spread.NET 워크시트 Unprotect 메서드를 사용하여 프로그래밍 방식으로 Excel 워크시트의 보호를 해제할 수 있습니다.


C#

fpSpread1.LegacyBehaviors = LegacyBehaviors.None;
fpSpread1.AsWorkbook().ActiveSheet.Unprotect();


VB.NET

fpSpread1.LegacyBehaviors = LegacyBehaviors.None
fpSpread1.AsWorkbook().ActiveSheet.Unprotect()


 3. .NET 앱에서 런타임 Excel과 유사한 대화상자를 사용하여 워크시트 보호 옵션 구현 


v16 릴리스의 새로운 기능으로, Spread.NET은 Excel과 유사한 시트 보호 대화상자(Protect Sheet Dialog)를 사용하여 사용자 인터페이스에서 설정되는 워크시트 보호 옵션을 완벽하게 지원합니다. 이를 통해 사용자는 UI를 통해 런타임 중에 Protect 메서드를 구현할 수 있습니다. 다시 말해, 사용자는 워크시트 보호 옵션을 지정하고 암호(Optional)를 설정할 수도 있습니다. 이 대화상자는 Spread.NET 탭 스트립(Tab Strip)의 컨텍스트 메뉴를 통해 액세스하거나 API를 사용하여 프로그래밍 방식으로 호출할 수 있습니다.


 런타임 동안 시트 보호 대화상자에 접근 


최종 사용자는 Spread.NET 탭 스트립의 컨텍스트 메뉴를 통해 런타임 동안 시트 보호 대화상자에 접근할 수 있습니다. 컨텍스트 메뉴는 다음과 같이 편집 가능(Editable)으로 설정되어야 합니다. 


C#

fpSpread1.TabStrip.Editable = true;


VB.NET

fpSpread1.TabStrip.Editable = True


탭 스트립을 편집 가능으로 설정하면, 사용자는 다음과 같이 워크시트 탭을 마우스 오른쪽 버튼으로 클릭하고 워크시트 탭 영역 컨텍스트 메뉴에서 "시트 보호"를 선택함으로써 시트 보호 대화상자에 접근할 수 있습니다.

fc299041d6cb90c9ba3020562879f019_1676858491_7037.gif
 


 런타임 시 프로그래밍 방식으로 시트 보호 대화상자 호출 


개발자들은 ProtectSheetDialog 클래스showDialog 메서드(System.Windows.Forms.Form에서 상속됨)를 사용하여 런타임 시 시트 보호 대화상자를 프로그래밍 방식으로 호출할 수 있습니다.


보호 옵션과 선택적 암호가 포함된 내장 워크시트 보호 대화상자를 보여주는 Spread.NET WinForms 데모 탐색기의 보호 대화상자(Protection Dialog) 샘플을 확인하세요.


다음은 위에서 업급된 Protection Dialog 샘플의 일부 코드입니다. OnProtectSheetMenuItemClick의 코드 논리는 ShowDialog를 사용하여 FpSpread의 인스턴스에 대한 ProtectSheetDialog를 표시하는 방법을 보여줍니다(이 대화상자는 모달을 표시해야 합니다).


C#

private void OnProtectSheetMenuItemClick(object sender, System.EventArgs e)
{
  if (_fpSpread.ActiveSheet == null)
        return;
  if (!_isEmptyPasswordProtected)
    {
        ProtectSheetDialog protectSheetDialog = new ProtectSheetDialog(_fpSpread);
        protectSheetDialog.ShowDialog(this);
    }
  else
    {
        _fpSpread.AsWorkbook().ActiveSheet.Unprotect(string.Empty);
    }
}


VB.NET

Private Sub OnProtectSheetMenuItemClick(ByVal sender As Object, ByVal e As System.EventArgs)
    If _fpSpread.ActiveSheet Is Nothing Then Return

    If Not _isEmptyPasswordProtected Then
        Dim protectSheetDialog As ProtectSheetDialog = New ProtectSheetDialog(_fpSpread)
        protectSheetDialog.ShowDialog(Me)
    Else
        _fpSpread.AsWorkbook().ActiveSheet.Unprotect(String.Empty)
    End If
End Sub


 4. 프로그래밍 방식으로 워크시트의 특정 셀, 범위 및 개체 보호 


Excel (XLSX) 워크시트를 보호할 때, 기본적으로 모든 셀이 잠기고, CRUD 작업은 행, 열, 또는 다른 기타 요소로 제한됩니다. 사용자가 전체 워크시트 대신 특정 요소나 셀 범위만 보호해야 하거나, 시트를 보호할 때 특정 동작만 제한하거나 허용하려는 시나리오가 있습니다. Spread.NET을 사용하여 개발자는 쉽게 셀 또는 셀 범위를 잠그거나 잠금을 해제할 수 있으며, 사용자 지정 워크시트 보호 옵션을 적용하여 수정 기능을 통합 문서 또는 기타 개체로 제한할 수 있습니다.


▶ Excel 워크시트에서 프로그래밍 방식으로 셀 잠금 및 잠금 해제


​워크시트의 셀들은 Locked 속성을 가지고 있습니다. Locked 속성은 셀이 편집할 수 없도록 잠겼는지 여부를 가져오거나 설정할 수 있는 속성입니다. 특정 셀이나 범위만 프로그래밍 방식으로 잠그기 위해, 우리는 먼저 Locked 속성을 false로 설정함으로써 워크시트에 포함된 모든 셀의 잠금을 해제해야 합니다.기본적으로 모든 셀이 잠겨 있기 때문에 이렇게 해야 합니다. 그런 다음 모든 셀의 잠금을 해제한 상태에서, 편집할 수 없도록 해야 하는 셀 또는 셀 범위에 대해서만 Locked 속성을 true로 설정할 수 있습니다.


아래 코드에서, 우리는 한 컬럼 개체의 Locked 속성을 false로 설정함으로써 워크시트의 셀 모두를 잠금 해제하고, 그 후 셀 범위 "B2:D5"를 잠그기 위해 한 셀 개체의 Locked 속성을 true로 설정합니다.


C#

FpSpread fpSpread1 = new FpSpread(); // Initialize Spread.NET 
fpSpread1.LegacyBehaviors = LegacyBehaviors.None;
fpSpread1.TabStrip.Editable = true;
// Set style for locked cells
fpSpread1.ActiveSheet.LockBackColor = System.Drawing.Color.LightCyan;
fpSpread1.ActiveSheet.LockForeColor = System.Drawing.Color.Green;
// Using the Column Object unlock all the cells
FarPoint.Win.Spread.Column columnobj; // Column Object
int count = fpSpread1.ActiveSheet.Columns.Count - 1; // Get the column count
columnobj = fpSpread1.ActiveSheet.Columns[0, count]; // Get all of the columns in the worksheet
columnobj.Locked = false; // Unlock the cells
// Use the Cells Object to lock a specific cells or cell ranges
FarPoint.Win.Spread.Cell cellobj; // Cell Object
cellobj = fpSpread1.ActiveSheet.Cells["B2:D5"]; // Get a cell range 
cellobj.Value = "Locked Cells"; // Display Text
cellobj.Locked = true; // Lock the cell range
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.All); // Protect the worksheet


VB.NET

Dim fpSpread1 As FpSpread = New FpSpread() 'Initialize Spread.NET
fpSpread1.LegacyBehaviors = LegacyBehaviors.None
fpSpread1.TabStrip.Editable = True
'Set style for locked cells
fpSpread1.ActiveSheet.LockBackColor = System.Drawing.Color.LightCyan
fpSpread1.ActiveSheet.LockForeColor = System.Drawing.Color.Green
'Using the Column Object Unlock all the cells
Dim columnobj As FarPoint.Win.Spread.Column 'Column Object
Dim count As Integer = fpSpread1.ActiveSheet.Columns.Count - 1 'Get the column count
columnobj = fpSpread1.ActiveSheet.Columns(0, count) 'Get all of the columns in the worksheet
columnobj.Locked = False 'Unlock the cells
'Use the Cells Object to lock a specific cells or cell ranges
Dim cellobj As FarPoint.Win.Spread.Cell 'Cell Object
cellobj = fpSpread1.ActiveSheet.Cells("B2:D5") 'Get a cell range
cellobj.Value = "Locked Cells" 'Lock the cell range
cellobj.Locked = True 'Lock the cell range
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.All) 'Protect the worksheet


 사용자 지정 워크시트 보호 설정 지정


두 가지 방식으로 .NET 앱에서 사용자 정의 Excel(XLSX) 워크시트 보호 옵션을 설정합니다. 프로그래밍 방식으로 Spread.NET API를 사용하거나 런타임 중에 Spread.NET에 내장된 Excel과 유사한 시트 보호 대화상자를 사용합니다.


1) 프로그래밍 방식으로 사용자 워크시트 보호 설정 지정

​개발자는 Protect 메서드를 호출할 때, 프로그래밍 방식으로 사용자 지정 워크시트 보호 설정을 지정할 수 있습니다. Protect 메서드는 워크시트의 보호된 데이터를 나타내는 WorksheetLocks 열거형을 전달하며, 이를 통해 개발자는 워크시트가 보호될 때 상호 작용 및 동작을 사용자 지정할 수 있습니다. 아래에서 WorksheetLocks.SelectLockedCells 멤버를 설정하여 사용자가 잠긴 셀을 선택할 수 없도록 지정합니다. 


C#

fpSpread1.LegacyBehaviors = LegacyBehaviors.None; fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.SelectLockedCells);


VB.NET

fpSpread1.LegacyBehaviors = LegacyBehaviors.None
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.SelectLockedCells)


이 GIF에서는 두 셀(B2:C2)을 제외한 통합 문서의 모든 셀이 잠금 해제되어 있고, 워크시트가 보호되어 있습니다. 사용자가 어떻게 잠긴 셀을 선택할 수 없는지 확인해보세요.


fc299041d6cb90c9ba3020562879f019_1676871292_0555.gif
 

2) 런타임 동안 사용자 지정 원크시트 보호 설정 적용

최종 사용자는 Spread.NET의 기본 제공 시트 보호 대화상자를 사용하여 런타임 중에 사용자 지정 워크시트 보호 옵션을 적용할 수 있습니다. 아래 이미지에서 대화상자는 워크시트가 보호될 때 사용자가 허용하거나 허용하지 않는 동작들을 나열합니다. 더 자세한 내용은 본문의 "컨텍스트 메뉴에서 런타임 동안 시트 보호 대화상자에 접근" 부분을 참고하여 주시기 바랍니다. 


fc299041d6cb90c9ba3020562879f019_1676933458_1783.png
 

 5. 프로그래밍 방식으로 Excel 파일을 암호로 보호하는 방법 


 프로그래밍 방식으로 Excel 통합 문서에 암호 설정 


통합 문서를 보호할 때 프로그래밍 방식으로 암호를 설정하여 Excel 파일에 암호화 및 보안 계층을 추가합니다. Excel은 통합 문서 수준에서 설정되는 2개의 서로 다른 암호를 지원합니다. 하나는 통합 문서 열기를 제한하는 것이고 다른 하나는 통합 문서 수정을 제한하는 것입니다. 


 열기를 제한하는 통합 문서 비밀번호

통합 문서 열기를 제한하는 암호를 설정하면 인증된 사용자만 Excel 파일 내의 데이터에 액세스할 수 있습니다. 개발자는 프로그래밍 방식으로 암호를 적용하여, Spread.NET의 SaveExcel OpenExcel 메서드를 사용하여 .NET 앱에서 암호로 보호된 Excel 통합 문서를 열거나 열기를 제한할 수 있습니다. 


C#

fpSpread1.OpenExcel("D:\\tmp\\SalesInfo.xlsx", "password"); // Open password protected Excel file
fpSpread1.SaveExcel("D:\\tmp\\SalesInfo.xlsx", ExcelSaveFlags.UseOOXMLFormat, "password"); // Programmatically save a password protected Excel file


VB.NET

fpSpread1.OpenExcel("D:\tmp\SalesInfo.xlsx", "password") 'Open password protected Excel file 
fpSpread1.SaveExcel("D:\tmp\SalesInfo.xlsx", ExcelSaveFlags.UseOOXMLFormat, "password") 'Programmatically save a password protected Excel file

Excel에서 암호로 보호된 문서를 열 때 사용자에게 암호를 입력하라는 메시지가 표시됩니다. 암호가 제공되지 않으면 통합 문서가 열리지 않습니다. 


fc299041d6cb90c9ba3020562879f019_1676934318_7735.png
 

 수정을 제한하기 위한 통합 문서 암호

예를 들어, 사용자가 워크시트를 추가, 제거 또는 숨기기/숨김 해제하지 못하도록 제한하는 등 개발자가 통합 문서의 구조만 보호해야 하는 시나리오가 있습니다. Spread.NET은 통합 문서의 Protect 메서드를 사용하여 수정 암호를 설정하여 통합 문서의 구조를 보호하도록 지원합니다. 


C#

fpSpread1.AsWorkbook().Protect(WorkbookLocks.All, "password"); 


VB.NET

fpSpread1.AsWorkbook().Protect(WorksheetLocks.All, "password")


수정 암호로 보호된 통합 문서를 열면 통합 문서가 보호되어 변경할 수 없다는 메시지가 사용자에게 표시됩니다. 


fc299041d6cb90c9ba3020562879f019_1676938885_9378.png

 

 프로그래밍 방식으로 Excel 파일의 워크시트에 암호 설정 


개발자는 특정 워크시트에 암호를 설정하여 사용자가 Excel 통합 문서 내의 특정 워크시트를 편집하지 못하도록 제한할 수 있습니다. 워크시트의 ProtectUnprotect 메서드는 특정 워크시트를 보호/보호 해제할 때 설정할 암호(password) 매개 변수를 제공합니다.


C#

fpSpread1.LegacyBehaviors = LegacyBehaviors.None;
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.All, "password");


VB.NET

fpSpread1.LegacyBehaviors = LegacyBehaviors.None
fpSpread1.AsWorkbook().ActiveSheet.Protect(WorksheetLocks.All, "password")


워크시트에 암호를 적용하면 사용자는 데이터를 볼 수 있지만 내용을 편집할 수는 없습니다. Excel을 사용하여 통합 문서를 열고 편집을 시도하면 사용자에게 시트가 보호되고 변경을 위해 암호를 입력하라는 알림이 표시됩니다. 


fc299041d6cb90c9ba3020562879f019_1676938900_9627.png
 

 



지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!

spnet.png


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.