none
PowerShelll에서 Excel RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShelll에서 Excel”에 대한 답변을 드리겠습니다.

     

    PowerShell에서도 Interop Aseembly를 이용해서 Excel Instance를 사용할 수 있습니다.  사용자 편의를 위해서  복잡한 동작을 Script 로 작성을 할 수 있습니다.

     

    Step 1 : Excel Instance 생성

     

    New-Object Cmdlet Excel ProgID를 이용해서Excel Instance를 생성할 수 있습니다.

     

    $excel1 = new-Object -comobject Excel.Application

     

    생성 후에 Visibile 속성의 기본값이 False이기 때문에 UI가 보이지 않습니다. True를 설정을 해서 UI를 볼 수 있게 합니다.

     

    $excel1.Visible = $true

     

    Excel Instance를 생성을 하면 기본적으로 Workbook은 생성이 안되어 있습니다. WorkBooks Class Add 함수를 이용해서 추가를 합니다 .

     

    $workbook1 = $excel1.WorkBooks.Add()

     

     

    Step 2 : WorkSheet Instance

     

    Workbook WorkSheet Instance  제공을 하려면 workbook Instance Worksheets Class를 이용합니다.

    아래의 Script는 첫번째 Worksheet Instance를 제공을 합니다.

     

    $sheet1 = $workbook1.Worksheets.Item(1)

     

     

     

    Step 3 : Cell

     

    WorkSheet Cells Class를 이용해서 Cell에 접근을 할 수 있습니다. 아래의 Script처럼 값을 설정할 수 있고 서식을 변경할 수 있습니다.

     

    $sheet1.Cells.Item(1,1) = "this is test."

     

     

    Step 4 : 병합

     

    Cell 하나 이상의 작업을 할 수 있습니다. WorkSheet Instance Range함수를 이용해서 여러셀을 선택을 할 수 있습니다. 아래의 Script는 하나 이상의 Cell을 선택 한 후 에 병합을 합니다.

     

    $range1 = $sheet1.Range("A1", "C5")

    $range1.Merge()

     

    Step 5 : 저장

     

    Workbook Instnace SaveAs 함수를 이용해서 작업한 내역을 저장을 할수 있습니다.

     

    $workbook1.SaveAs("C:\TestExcel.xlsx")

     

    $excel1.Quit()

     

     

    참고 자료

     

    Microsoft.Office.Interop.Excel Namespace

    http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.aspx

     

    New-Object

    http://technet.microsoft.com/en-us/library/dd315334.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

     

    • 답변으로 표시됨 김도남 2011년 11월 24일 목요일 오전 9:15
    2011년 11월 23일 수요일 오전 8:57
    중재자