다음을 통해 공유


Excel 범위에서 프로그래밍 방식으로 날짜 값 저장 및 검색

NamedRange 컨트롤 또는 네이티브 Excel 범위 개체에서 값을 저장하고 검색할 수 있습니다.

적용 대상: 이 항목의 정보는 Excel의 문서 수준 프로젝트 및 VSTO 추가 기능 프로젝트에 적용됩니다. 자세한 내용은 Office 애플리케이션 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하세요.

Visual Studio에서 Office 개발 도구를 사용하여 1900년 1월 1일 이후의 날짜 값을 범위에 저장하는 경우 OA(OLE 자동화) 형식으로 저장됩니다. OA(OLE 자동화) 날짜 값을 검색하려면 FromOADate 메서드를 사용해야 합니다. 날짜가 1900년 1월 1일 이전인 경우 문자열로 저장됩니다.

참고 항목

Excel 날짜는 1900년 처음 두 달 동안 OLE 자동화 날짜와 다릅니다. 1904년 날짜 시스템 옵션을 선택하는 경우에도 차이점이 있습니다. 아래 코드 예제에서는 이러한 차이점을 해결하지 않습니다.

NamedRange 컨트롤 사용

  • 이 예제는 문서 수준 사용자 지정에 대한 것입니다. 다음 코드는 ThisWorkbook 클래스가 아니라 시트 클래스에 배치해야 합니다.

명명된 범위에 날짜 값을 저장하려면

  1. A1 셀에서 NamedRange 컨트롤을 만듭니다.

    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.get_Range("A1"), "NamedRange1");
    
  2. 오늘 날짜를 NamedRange1에 대한 값으로 설정합니다.

    DateTime dt = DateTime.Now;
    NamedRange1.Value2 = dt;
    

명명된 범위에서 날짜 값을 검색하려면

  1. NamedRange1에서 날짜 값을 검색합니다.

    object value = NamedRange1.Value2;
    
    if (value != null)
    {
        if (value is double)
        {
            dt = DateTime.FromOADate((double)value);
        }
        else
        {
            DateTime.TryParse((string)value, out dt);
        }
    }
    MessageBox.Show(dt.ToString());
    

네이티브 Excel 범위 사용

네이티브 Excel 범위 개체에 날짜 값을 저장하려면

  1. A1 셀을 나타내는 Range을 만듭니다.

    Excel.Range rng = this.Application.get_Range("A1");
    
  2. 오늘 날짜를 rng에 대한 값으로 설정합니다.

    DateTime dt = DateTime.Now;
    rng.Value2 = dt;
    

네이티브 Excel 범위 개체에서 날짜 값을 검색하려면

  1. rng에서 날짜 값을 검색합니다.

    object value = rng.Value2;
    
    if (value != null)
    {
        if (value is double)
        {
            dt = DateTime.FromOADate((double)value);
        }
        else
        {
            DateTime.TryParse((string)value, out dt);
        }
    }
    System.Windows.Forms.MessageBox.Show(dt.ToString());