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

.NET C#을 사용하여 Excel 찾기 및 찾아 바꾸기 구현 > 블로그 & Tips

본문 바로가기

.NET API

블로그 & Tips

.NET C#을 사용하여 Excel 찾기 및 찾아 바꾸기 구현

페이지 정보

작성자 GrapeCity 작성일 2022-04-21 16:43 조회 2,618회 댓글 0건

본문

첨부파일

맹렬한 속도로 데이터를 수집함에 따라 정보를 쉽고 빠르게 찾을 수 있어야 하는 필요성이 그 어느 때보다 중요해졌습니다.

Excel 문서를 다룰 때, 많은 레코드와 시트가 포함된 대용량 통합 문서로 작업할 때 텍스트와 데이터를 쉽고 빠르게 정확하게 관리할 수 있는 것이 특히 중요합니다.


단순하지만 강력한 "찾기 및 바꾸기"를 문서의 빠른 참조와 수정에 사용하면 시간과 노력을 절약할 수 있습니다.


.NET용 GcExcel찾기 및 바꾸기 기능으로 작거나 큰 텍스트 블록을 프로그래밍 방식으로 쉽고 빠르게 변경할 수 있습니다.


이 문서에서는 이 기능을 사용하여 다음과 같은 시나리오를 다루겠습니다.

  • 특정 텍스트 조회

  • 특정 텍스트 찾기 및 수정

  • 전체 문서에서 철자가 잘못된 단어나 숫자 수정

  • 단어 또는 구문을 다른 관련 텍스트로 교환


이제 상세하게 기능을 살펴보겠습니다.



찾기 및 바꾸기의 접근 방식


검색 범위 식별

특정 텍스트를 찾기 위한 첫 번째 단계는 업데이트가 필요한 데이터 범위를 식별하는 것입니다. 원하는 범위를 선택하기 위해 다양한 옵션 중에서 선택할 수 있습니다.


  1. 특정 범위를 선택합니다(예: IWorkSheet.Range 속성을 사용한 B1:H100)

    IRange range = worksheet.Range["B1:H100"];

  1. IWorkSheet.GetUsedRange() 메서드를 사용하여 워크시트에서 사용된 범위를 선택합니다

    IRange usedRange = worksheet.GetUsedRange(UsedRangeType.Data);

  1. IRange.Cells 속성을 사용하여 워크시트의 모든 셀을 선택합니다

    IRange fullSheet = worksheet.Cells;

Excel에는 많은 행(및 시트)이 있으므로 이 블로그에서는 데이터가 있는 셀만 가져오기 위해 IRange.GetUsedRange() 메서드를 사용했습니다.


특정 텍스트 조회

원하는 범위가 있으면 IRange.Find() 메서드를 사용할 수 있습니다. 다음의 세 가지 인수를 사용합니다.


  1. 찾을 개체

  2. 시작해야 할 검색 이후 셀 위치

  3. 검색을 구성하는 옵션(선택 사항)

(전체 데모 참조)


특정 텍스트 찾기 및 수정

수정하려는 범위가 있으면 IRange.Replace() 메서드를 사용하십시오. 다음의 세 가지 인수를 사용합니다.


  1. 교체가 필요한 개체

  2. 교체가 될 개체

  3. 검색 및 교체 프로세스를 구성할 옵션(선택적 인수)

(전체 데모 참조)


사용 사례

귀하는 높은 성과를 보이는 판매 조직과 일하는 IT 전문가입니다. 판매 책임자가 모든 회사 정책과 절차의 정확성 및 준수를 확인하기 위해 이 데이터의 검토를 요청했습니다.


일반적으로 분석하고 변경하는 데 몇 시간 또는 며칠이 걸릴 수도 있었지만 이 프로젝트는 GcExcel C# .NET API 라이브러리를 사용하면 순식간에 완료될 것입니다!


다음은 회사에서 분석을 위해 귀하에게 제공한 스프레드시트의 스냅샷입니다.

데이터


책임자가 다음 분석 및 변경 사항에 대해 질문했습니다.

  • 현금을 사용한 결제 찾기 및 강조 표시

  • 코딩된 분점을 실제 분점 이름으로 교환

  • 생산 라인에서 철자가 잘못된 부품 "액세서리"를 올바른 텍스트로 수정


책임자가 요청한 작업을 완료하기 위해 아래 코드 조각에 설명된 대로 .NET용 GcExcel을 사용하여 찾기 및 바꾸기 기능을 사용해 보겠습니다.

static void Main(string[] args)
{
   Workbook workbook = new Workbook();
   workbook.Open("supermarket_sales.xlsx");
​
   IRange searchRange = null;
   int countofSheet = workbook.Worksheets.Count;
​
   #region Highlight Cash Payment
​
   //Find and highlight the payments made using Cash
​
   IRange cellWithCashText = null;  //cell to begin search with
​
   for (int i = 0; i < countofSheet; i++)
  {
       searchRange = workbook.Worksheets[i].GetUsedRange(UsedRangeType.Data);
       cellWithCashText = searchRange.Find("Cash", cellWithCashText, null);
       do
      {
           cellWithCashText.Interior.Color = Color.Gold;            
           cellWithCashText = searchRange.Find("Cash", cellWithCashText, null); //change search cell position to next one
      }
       while (cellWithCashText != null); //iterate until cell with search text is not found
          }
   #endregion
​
​
   #region Branch Name Update
​
   //Exchange the coded Branch with actual Branch names
​
   IRange cellWithBranch = null;
   FindOptions fo = new FindOptions();
   string[] branches = { "A", "B", "G" };
​
   for (int i = 0; i < countofSheet; i++)
  {
       searchRange = workbook.Worksheets[i].GetUsedRange(UsedRangeType.Data);
       fo.LookAt = LookAt.Whole;
       foreach (var branch in branches)
      {
           cellWithBranch = searchRange.Find(branch, cellWithBranch, fo);
           do
          {
               switch (cellWithBranch.Value)
              {
                   case "A":
                       cellWithBranch.Value = "Alpha";
                       break;
                   case "B":
                       cellWithBranch.Value = "Beta";
                       break;
                   case "G":
                       cellWithBranch.Value = "Gamma";
                       break;
                   default:
                       break;
              }
               cellWithBranch = searchRange.Find(branch, cellWithBranch, null);
          }
           while (cellWithBranch != null);
      }
  }
   #endregion
​
​
   #region Spelling Correction
​
   //Correct the misspelled part “accesories” in the product line with the correct text.
​
   ReplaceOptions ro = new ReplaceOptions();
​
   for (int i = 0; i < countofSheet; i++)
  {
       searchRange = workbook.Worksheets[i].GetUsedRange(UsedRangeType.Data);
       ro.LookAt = LookAt.Part;                
       searchRange.Replace("accesories", "accessories", ro);                
  }
   #endregion
​
   workbook.Save("supermarket_sales_updated.xlsx");
​
}


위의 코드를 실행한 후 결과 Excel 파일은 이 이미지와 같아야 합니다.

데이터


샘플을 다운로드하고 이 기능을 직접 사용해 보십시오!


위의 비즈니스 요구 사항과 같은 시나리오를 다루는 다음 데모를 확인해볼 수도 있습니다.



찾기 및 바꾸기 옵션

GrapeCity.Documents.Excel 네임스페이스 내에서 FindOptionsReplaceOptions 클래스를 찾을 수 있습니다. 각 IRange.FindIRange.Replace 메서드에 대해 옵션 매개 변수를 줄바꿈합니다. 

이러한 클래스에서 제공한 여러 속성을 사용하여 검색/바꾸기 프로세스를 제어하거나 관리할 수 있습니다. 데모에 따라 활성화된 이러한 속성을 볼 수 있습니다.



고급 검색 시나리오


기본 검색 및 바꾸기 시나리오 외에도 GcExcel은 검색 메모, 수식, 병합된 셀, 정규식 등의 고급 검색 기능도 제공합니다. 데모를 따라 활성화된 항목을 볼 수 있습니다.





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

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

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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