[c#] Excel interop : _ 워크 시트 또는 워크 시트?



Answers

Reflector 에서 PIA 어셈블리 (Microsoft.Office.Interop.Excel)를 보면 Workbook 인터페이스에이 정의가 있습니다.

public interface Workbook : _Workbook, WorkbookEvents_Event

Workbook_Workbook 이지만 이벤트를 추가합니다. Worksheet 와 동일합니다 (미안하지만, Worksheet Workbooks 에 대해 말하지 않는 것으로 나타났습니다) ...

public interface Worksheet : _Worksheet, DocEvents_Event

DocEvents_Event ...

[ComVisible(false), TypeLibType((short) 0x10), ComEventInterface(typeof(DocEvents),
                     typeof(DocEvents_EventProvider))]
public interface DocEvents_Event
{
    // Events
    event DocEvents_ActivateEventHandler Activate;
    event DocEvents_BeforeDoubleClickEventHandler BeforeDoubleClick;
    event DocEvents_BeforeRightClickEventHandler BeforeRightClick;
    event DocEvents_CalculateEventHandler Calculate;
    event DocEvents_ChangeEventHandler Change;
    event DocEvents_DeactivateEventHandler Deactivate;
    event DocEvents_FollowHyperlinkEventHandler FollowHyperlink;
    event DocEvents_PivotTableUpdateEventHandler PivotTableUpdate;
    event DocEvents_SelectionChangeEventHandler SelectionChange;
}

Worksheet 를 사용하는 것이 가장 좋을 것이라고 말하지만, 차이점이 있습니다.

Question

나는 현재 동적 타이핑에 대해 쓰고 있는데, 나는 Excel interop의 예를 들고있다. 이전에는 거의 모든 Office Interop을 수행하지 못했지만 보여줍니다. C # 4 용 MSDN Office Interop 자습서_Worksheet 인터페이스를 사용하지만 Worksheet 인터페이스도 있습니다. 나는 그 차이가 무엇인지 전혀 모른다.

어리석은 간단한 데모 응용 프로그램 (아래에 표시)에서 잘 작동합니다. 그러나 모범 사례가 하나 또는 다른 지시를 내리는 경우 적절하게 사용하고 싶습니다.

using System;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;

class DynamicExcel
{
    static void Main()
    {
        var app = new Excel.Application { Visible = true };
        app.Workbooks.Add();

        // Can use Excel._Worksheet instead here. Which is better?
        Excel.Worksheet workSheet = app.ActiveSheet;

        Excel.Range start = workSheet.Cells[1, 1];
        Excel.Range end = workSheet.Cells[1, 20];
        workSheet.get_Range(start, end).Value2 = Enumerable.Range(1, 20)
                                                           .ToArray();
    }
}

C # 4의 새로운 기능을 강조하면서 COM 또는 Office 상호 운용성에 대한 심층적 인 연구를 피하려고 노력하고 있습니다.하지만 정말 바보 같은 일을하고 싶지는 않습니다.

( "A1 : T1"대신에 별도의 시작 / 끝 셀을 사용하는 것은 신중한 방법입니다 - 진정한 범위라는 것을 쉽게 알 수 있습니다. 20 개의 세포가 있습니다. 다른 것은 우발적 인 것 같습니다.)

따라서 _Worksheet 또는 Worksheet 사용해야합니까? 그 이유는 무엇입니까?




필자는 지난 몇 년 동안 C # / Excel COM Interop 코드를 꽤 많이 보았고 거의 모든 경우에 사용되는 Worksheet를 보았습니다. 필자는이 주제에 대해 Microsoft로부터 결정적인 것을 본 적이 없습니다.




Links