UiPath로 Excel 작업하기 (활용편 : 최종 행 얻기)

10949 단어 ExcelUiPath

UiPath에서 Excel 작업 (활용 편 : 최종 행 얻기)



개요



UiPath에서 Excel 셀에서 최종 행을 얻는 방법을 소개합니다.


약속사항(면책사항)


  • 이 기사는 2020년 6월 시점의 정보를 기초로 작성하고 있습니다.
  • 기사의 내용은 나 개인의 견해이며, 소속하는 조직의 공식 견해가 아닙니다.

  • 스킬



    이 기사에는 C#을 통한 맞춤 활동 개발이 포함되어 있습니다.
    사용자 지정 활동을 개발하는 방법은 UiPath 공식 문서를 참조하십시오.
    (본 기사에서는 최소한만 기재합니다.)
    htps : // / cs. 우파 th. 코 m / 아 c 치 ぃ 치에 s / ぁ g ぃ / ㅇ cs / c 레 아 치 g 아 쿠 s와 m 아 c 치 ぃ ty

    필요한 소프트웨어


  • Visual Studio
  • Nuget 또는 Nuget Package Explorer
  • Microsoft Office

  • 구현 내용 확인



    매크로 기록을 활용하여 구현 내용을 확인합니다.

    1. Excel 데이터 준비



    이번에는 4x4 이하의 데이터를 준비했습니다.


    2. 매크로 기록 시작



    개발 탭에서 매크로 기록을 선택합니다.
    매크로 이름은 기본값으로 진행됩니다.



    3. 시작 셀 선택



    마지막 행을 식별하기 전에 시작 셀을 선택해야 합니다.
    이 기사에서는 1A 데이터가 설정된 C3 셀을 선택합니다.

    4. [Ctrl]+[↓]로 마지막 행으로 이동



    Ctrl 키와 ↓ 키를 누르면 마지막 줄의 4A 셀로 이동합니다.


    5. 매크로 내용 확인



    개발 탭에서 녹화 중지를 선택하여 구현 내용을 확인합니다.






    구현



    매크로의 내용을 바탕으로 구현합니다.
    using Microsoft.Office.Interop.Excel;
    using System;
    using System.Activities;
    using System.ComponentModel;
    
    namespace UiPathCustomLibrary
    {
        public class GetEndRow : CodeActivity
        {
            [Category("Input")]
            [RequiredArgument]
            public InArgument<Object> WorkbookApplication { get; set; }
            [Category("Input")]
            [RequiredArgument]
            public InArgument<String> SheetName{ get; set; }
            [Category("Input")]
            [RequiredArgument]
            public InArgument<String> Range { get; set; }
            [Category("Output")]
            public OutArgument<int> EndRowNum{ get; set; }
            protected override void Execute(CodeActivityContext context)
            {
                // 引数(InArgument)より、WorkbookApplicationのオブジェクトを取得する
                // WorkbookApplicationの属性に必須(RequireArgument)を指定しているため、workbookappのnullチェックは不要
                object workbookapp = WorkbookApplication.Get(context);
    
                // WorkbookApplicationから、Microsoft.Office.Interop.Excel.Workbook型として(キャストして)、CurrentWorkbookを読み込む
                Workbook workbook = workbookapp.GetType().GetProperty("CurrentWorkbook").GetValue(workbookapp) as Workbook;
    
                // 対象のシート(初期値:null)
                Worksheet worksheet = null;
    
                // ワークシート一覧からシート名が一致するシートを取得する
                foreach (Worksheet ws in workbook.Worksheets)
                {
                    if (ws.Name == SheetName.Get(context))
                    {
                        worksheet = ws;
                        worksheet.Activate();
                        break;
                    }
                }
                // 対象のシートが初期値のままの場合、例外を発生して終了する
                if (worksheet == null)
                {
                    throw new ArgumentException("指定されたシート名が存在しません");
                }
    
                // 指定されたRangeを選択する
                // マクロの("C3")と同じ
                Range range = worksheet.Range[Range.Get(context)];
    
                // セルを選択する
                range.Select();
    
                // 選択したセルから下方向に、最終行の行数を取得する
                int endRowNum = range.End[XlDirection.xlDown].Row;
    
                // 最終行を返り値に設定する
                EndRowNum.Set(context, endRowNum);
            }
        }
    }
    
    

    실행 확인



    ExcelApplicationScope에서는 "Sample.xlsx"파일을 지정하고,
    Nuget Package Explorer에서 만든 라이브러리를 UiPath Studio에서 설치한 후 즉시 사용해 봅니다.



    좋은 웹페이지 즐겨찾기